From 371388044361cde69d0cd9a4ae0ba432848568e4 Mon Sep 17 00:00:00 2001 From: Jeremy Massel <1123407+jkmassel@users.noreply.github.com> Date: Tue, 23 Nov 2021 13:49:51 -0700 Subject: [PATCH 001/114] Add WP/JP installable builds --- .buildkite/commands/build-for-testing.sh | 1 - .../commands/installable-build-jetpack.sh | 17 ++++ .../commands/installable-build-wordpress.sh | 17 ++++ .buildkite/pipeline.yml | 16 +++- .circleci/config.yml | 91 ------------------- 5 files changed, 49 insertions(+), 93 deletions(-) create mode 100644 .buildkite/commands/installable-build-jetpack.sh create mode 100644 .buildkite/commands/installable-build-wordpress.sh diff --git a/.buildkite/commands/build-for-testing.sh b/.buildkite/commands/build-for-testing.sh index 24241f55f657..aa65c23f6755 100755 --- a/.buildkite/commands/build-for-testing.sh +++ b/.buildkite/commands/build-for-testing.sh @@ -5,7 +5,6 @@ echo "--- :rubygems: Fixing Ruby Setup" gem install bundler echo "--- :rubygems: Setting up Gems" -restore_cache "$(hash_file .ruby-version)-$(hash_file Gemfile.lock)" install_gems echo "--- :cocoapods: Setting up Pods" diff --git a/.buildkite/commands/installable-build-jetpack.sh b/.buildkite/commands/installable-build-jetpack.sh new file mode 100644 index 000000000000..1d654b6ea96c --- /dev/null +++ b/.buildkite/commands/installable-build-jetpack.sh @@ -0,0 +1,17 @@ +#!/bin/bash -eu + +# FIXIT-13.1: Temporary fix until we're on the Xcode 13.1 VM +echo "--- :rubygems: Fixing Ruby Setup" +gem install bundler + +echo "--- :rubygems: Setting up Gems" +install_gems + +echo "--- :cocoapods: Setting up Pods" +install_cocoapods + +echo "--- :closed_lock_with_key: Installing Secrets" +bundle exec fastlane run configure_apply + +echo "--- :hammer_and_wrench: Building" +bundle exec fastlane build_and_upload_jetpack_installable_build build_number:$BUILDKITE_PULL_REQUEST diff --git a/.buildkite/commands/installable-build-wordpress.sh b/.buildkite/commands/installable-build-wordpress.sh new file mode 100644 index 000000000000..09ae5d4de94b --- /dev/null +++ b/.buildkite/commands/installable-build-wordpress.sh @@ -0,0 +1,17 @@ +#!/bin/bash -eu + +# FIXIT-13.1: Temporary fix until we're on the Xcode 13.1 VM +echo "--- :rubygems: Fixing Ruby Setup" +gem install bundler + +echo "--- :rubygems: Setting up Gems" +install_gems + +echo "--- :cocoapods: Setting up Pods" +install_cocoapods + +echo "--- :closed_lock_with_key: Installing Secrets" +bundle exec fastlane run configure_apply + +echo "--- :hammer_and_wrench: Building" +bundle exec fastlane build_and_upload_installable_build build_number:$BUILDKITE_PULL_REQUEST diff --git a/.buildkite/pipeline.yml b/.buildkite/pipeline.yml index 7d98026e85dc..58c3a701bca1 100644 --- a/.buildkite/pipeline.yml +++ b/.buildkite/pipeline.yml @@ -12,10 +12,24 @@ common_params: # This is the default pipeline – it will build and test the app steps: + + ################# + # Create Installable Builds for WP and JP + ################# + - label: ":hammer_and_wrench: WordPress Installable Build" + command: ".buildkite/commands/installable-build-wordpress.sh" + env: *common_env + plugins: *common_plugins + + - label: ":hammer_and_wrench: Jetpack Installable Build" + command: ".buildkite/commands/installable-build-jetpack.sh" + env: *common_env + plugins: *common_plugins + ################# # Build the app ################# - - label: ":pipeline: Build" + - label: ":pipeline: Build for Testing" key: "build" command: ".buildkite/commands/build-for-testing.sh" env: *common_env diff --git a/.circleci/config.yml b/.circleci/config.yml index 49cf70a5db03..679dd1e3540a 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -150,31 +150,6 @@ jobs: include_job_number_field: false include_project_field: false failure_message: '${SLACK_FAILURE_MESSAGE}' - WordPress Installable Build: - executor: - name: ios/default - <<: *xcode_version - steps: - - fix-image - - git/shallow-checkout - - ios/install-dependencies: - bundle-install: true - pod-install: true - cache-prefix: cache-prefix-{{ checksum ".circleci/cache-version" }} - - run: - name: Copy Secrets - command: bundle exec fastlane run configure_apply - - run: - name: Build - command: "bundle exec fastlane build_and_upload_installable_build build_number:$CIRCLE_BUILD_NUM" - - run: - name: Prepare Artifacts - command: | - mkdir -p Artifacts - mv "fastlane/comment.json" "Artifacts/comment.json" - - store_artifacts: - path: Artifacts - destination: Artifacts Release Build: executor: name: ios/default @@ -233,36 +208,6 @@ jobs: webhook: '${SLACK_BUILD_WEBHOOK}' failure_message: '${SLACK_FAILURE_MESSAGE}' success_message: '${SLACK_SUCCESS_MESSAGE}' - Jetpack Installable Build: - executor: - name: ios/default - <<: *xcode_version - environment: - HOMEBREW_NO_AUTO_UPDATE: 1 - steps: - - fix-image - - git/shallow-checkout - - ios/install-dependencies: - bundle-install: true - pod-install: true - cache-prefix: cache-prefix-{{ checksum ".circleci/cache-version" }} - - run: - name: Copy Secrets - command: bundle exec fastlane run configure_apply - - run: - name: Install other tools - command: | - brew update # Update homebrew to temporarily fix a bintray issue - brew install imagemagick - brew install ghostscript - curl -sL https://sentry.io/get-cli/ | bash - - run: - name: Build - command: bundle exec fastlane build_and_upload_jetpack_installable_build - no_output_timeout: 60m - - store_artifacts: - path: Artifacts - destination: Artifacts Build Jetpack: executor: name: ios/default @@ -345,45 +290,9 @@ workflows: name: UI Tests (iPad) <<: *ipad_test_device requires: [ "Optional Tests" ] - Installable Build: - when: - and: - - not: << pipeline.parameters.beta_build >> - - not: << pipeline.parameters.release_build >> - jobs: - - Approve WordPress: - type: approval - filters: - branches: - ignore: /pull\/[0-9]+/ - - WordPress Installable Build: - requires: [Approve WordPress] - filters: - branches: - ignore: /pull\/[0-9]+/ - - Approve Jetpack: - type: approval - filters: - branches: - ignore: /pull\/[0-9]+/ - - Jetpack Installable Build: - requires: [Approve Jetpack] - filters: - branches: - ignore: /pull\/[0-9]+/ Release Build: when: or: [ << pipeline.parameters.beta_build >>, << pipeline.parameters.release_build >> ] jobs: - Release Build - Jetpack Nightly: - triggers: - - schedule: - cron: "0 0 * * *" - filters: - branches: - only: - - develop - jobs: - - Jetpack Installable Build From c0cb6b84667f24499ac9532e28547e511e837e34 Mon Sep 17 00:00:00 2001 From: Jeremy Massel <1123407+jkmassel@users.noreply.github.com> Date: Tue, 23 Nov 2021 15:08:26 -0700 Subject: [PATCH 002/114] Remove Sentry auto-installation --- fastlane/Fastfile | 3 --- fastlane/Jetpack-Fastfile | 3 --- 2 files changed, 6 deletions(-) diff --git a/fastlane/Fastfile b/fastlane/Fastfile index 485f649085d8..d1b24736f0e8 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -580,9 +580,6 @@ platform :ios do notify_testers: false ) - # Install SentryCLI prior to trying to upload dSYMs - sh('curl -sL https://sentry.io/get-cli/ | bash') - sentry_upload_dsym( auth_token: get_required_env('SENTRY_AUTH_TOKEN'), org_slug: 'a8c', diff --git a/fastlane/Jetpack-Fastfile b/fastlane/Jetpack-Fastfile index 10de2852f667..9234bfcf3c5c 100644 --- a/fastlane/Jetpack-Fastfile +++ b/fastlane/Jetpack-Fastfile @@ -54,9 +54,6 @@ APP_IDENTIFIER = 'com.automattic.jetpack' notify_testers: false ) - # Install SentryCLI prior to trying to upload dSYMs - sh("curl -sL https://sentry.io/get-cli/ | bash") unless sh("which sentry-cli") - sentry_upload_dsym( auth_token: get_required_env("SENTRY_AUTH_TOKEN"), org_slug: 'a8c', From 9153b2456ad4fadb0d57fecbc8043a2c2822df0f Mon Sep 17 00:00:00 2001 From: Jeremy Massel <1123407+jkmassel@users.noreply.github.com> Date: Sat, 27 Nov 2021 21:07:20 -0700 Subject: [PATCH 003/114] Add built-in PR commenting --- Gemfile.lock | 4 ++-- fastlane/Fastfile | 13 ++++++++++--- fastlane/Jetpack-Fastfile | 15 +++++++++++++++ fastlane/Pluginfile | 2 +- 4 files changed, 28 insertions(+), 6 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index fcd681c4ad37..32238ed49df5 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,7 +1,7 @@ GIT remote: git@github.com:wordpress-mobile/release-toolkit - revision: eccf5a273276e976cd42c66590af087d1654037f - branch: develop + revision: 83e4d5f036f1871ce6f8e9411550d4040cebddca + branch: add/github-comment-action specs: fastlane-plugin-wpmreleasetoolkit (2.1.0) activesupport (~> 5) diff --git a/fastlane/Fastfile b/fastlane/Fastfile index d1b24736f0e8..b86cc47b229a 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -587,13 +587,20 @@ platform :ios do dsym_path: lane_context[SharedValues::DSYM_OUTPUT_PATH] ) + return if ENV['BUILDKITE_PULL_REQUEST'].nil? + download_url = Actions.lane_context[SharedValues::APPCENTER_DOWNLOAD_LINK] UI.message("Successfully built and uploaded installable build here: #{download_url}") install_url = 'https://install.appcenter.ms/orgs/automattic/apps/WPiOS-One-Offs/' - # Create a comment.json file so that Peril to comment with the build details, if this is running on CI - comment_body = "You can test the changes on this Pull Request by downloading it from AppCenter [here](#{install_url}) with build number: #{build_number}. IPA is available [here](#{download_url}). If you need access to this, you can ask a maintainer to add you." - File.write('comment.json', { body: comment_body }.to_json) + comment_body = "You can test the WordPress changes on this Pull Request by downloading it from AppCenter here with build number: #{build_number}. IPA is available here. If you need access to this, you can ask a maintainer to add you." + + comment_on_pr( + project: 'wordpress-mobile/wordpress-ios', + pr_number: ENV['BUILDKITE_PULL_REQUEST'], + reuse_identifier: 'installable-build-link', + body: comment_body + ) end ##################################################################################### diff --git a/fastlane/Jetpack-Fastfile b/fastlane/Jetpack-Fastfile index 9234bfcf3c5c..5020af3127c2 100644 --- a/fastlane/Jetpack-Fastfile +++ b/fastlane/Jetpack-Fastfile @@ -60,6 +60,21 @@ APP_IDENTIFIER = 'com.automattic.jetpack' project_slug: 'jetpack-ios', dsym_path: lane_context[SharedValues::DSYM_OUTPUT_PATH], ) + + return if ENV['BUILDKITE_PULL_REQUEST'].nil? + + download_url = Actions.lane_context[SharedValues::APPCENTER_DOWNLOAD_LINK] + UI.message("Successfully built and uploaded installable build here: #{download_url}") + install_url = 'https://install.appcenter.ms/orgs/automattic/apps/jetpack-installable-builds/' + + comment_body = "You can test the Jetpack changes on this Pull Request by downloading it from AppCenter here with build number: #{build_number}. IPA is available here. If you need access to this, you can ask a maintainer to add you." + + comment_on_pr( + project: 'wordpress-mobile/wordpress-ios', + pr_number: ENV['BUILDKITE_PULL_REQUEST'], + reuse_identifier: 'jetpack-installable-build-link', + body: comment_body + ) end desc "Build for Testing" diff --git a/fastlane/Pluginfile b/fastlane/Pluginfile index 872157c83264..ea86b278bce2 100644 --- a/fastlane/Pluginfile +++ b/fastlane/Pluginfile @@ -8,7 +8,7 @@ end # gem 'fastlane-plugin-wpmreleasetoolkit', '~> 2.1' # This comment avoids typing to switch to a development version for testing. -gem 'fastlane-plugin-wpmreleasetoolkit', git: 'git@github.com:wordpress-mobile/release-toolkit', branch: 'develop' +gem 'fastlane-plugin-wpmreleasetoolkit', git: 'git@github.com:wordpress-mobile/release-toolkit', branch: 'add/github-comment-action' gem 'fastlane-plugin-sentry' gem 'fastlane-plugin-appcenter', '~> 1.8' From b2cbb0f7c6573735856380b61f975be24aa7c357 Mon Sep 17 00:00:00 2001 From: Jeremy Massel <1123407+jkmassel@users.noreply.github.com> Date: Sun, 28 Nov 2021 21:15:37 -0700 Subject: [PATCH 004/114] Use more precise JP installable build versions --- fastlane/Jetpack-Fastfile | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/fastlane/Jetpack-Fastfile b/fastlane/Jetpack-Fastfile index 5020af3127c2..af8dadc5b1b1 100644 --- a/fastlane/Jetpack-Fastfile +++ b/fastlane/Jetpack-Fastfile @@ -17,12 +17,21 @@ APP_IDENTIFIER = 'com.automattic.jetpack' desc "Builds and uploads a Jetpack installable build" lane :build_and_upload_jetpack_installable_build do | options | jetpack_alpha_code_signing + require 'git' # Get the current build version, and update it if needed version_config_path = File.join(PROJECT_ROOT_FOLDER, "config", "Version.internal.xcconfig") versions = Xcodeproj::Config.new(File.new(version_config_path)).to_hash - build_number = Time.new.strftime("%Y-%m-%d-%H") + long_hash = Git.open(PROJECT_ROOT_FOLDER).revparse('HEAD') + short_hash = `git rev-parse --short #{long_hash}`.strip! + + build_number = [ + short_hash, + '-', + Time.new.strftime("%Y%m%d-%H%M") + ].join + UI.message("Updating build version to #{build_number}") versions["VERSION_SHORT"] = "0.1" From 418b7d0986f91a3c10ee86486ff34358905fc02c Mon Sep 17 00:00:00 2001 From: Jeremy Massel <1123407+jkmassel@users.noreply.github.com> Date: Fri, 3 Dec 2021 12:18:02 -0700 Subject: [PATCH 005/114] Use `develop` for the release toolkit --- fastlane/Pluginfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fastlane/Pluginfile b/fastlane/Pluginfile index ea86b278bce2..872157c83264 100644 --- a/fastlane/Pluginfile +++ b/fastlane/Pluginfile @@ -8,7 +8,7 @@ end # gem 'fastlane-plugin-wpmreleasetoolkit', '~> 2.1' # This comment avoids typing to switch to a development version for testing. -gem 'fastlane-plugin-wpmreleasetoolkit', git: 'git@github.com:wordpress-mobile/release-toolkit', branch: 'add/github-comment-action' +gem 'fastlane-plugin-wpmreleasetoolkit', git: 'git@github.com:wordpress-mobile/release-toolkit', branch: 'develop' gem 'fastlane-plugin-sentry' gem 'fastlane-plugin-appcenter', '~> 1.8' From 94d7c6358543bcafcf67c8f4507769dbe34fd1a4 Mon Sep 17 00:00:00 2001 From: Jeremy Massel <1123407+jkmassel@users.noreply.github.com> Date: Fri, 3 Dec 2021 21:24:29 -0700 Subject: [PATCH 006/114] Fix argument type --- fastlane/Fastfile | 2 +- fastlane/Jetpack-Fastfile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/fastlane/Fastfile b/fastlane/Fastfile index b86cc47b229a..96ea5dfb3280 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -597,7 +597,7 @@ platform :ios do comment_on_pr( project: 'wordpress-mobile/wordpress-ios', - pr_number: ENV['BUILDKITE_PULL_REQUEST'], + pr_number: Integer(ENV['BUILDKITE_PULL_REQUEST']), reuse_identifier: 'installable-build-link', body: comment_body ) diff --git a/fastlane/Jetpack-Fastfile b/fastlane/Jetpack-Fastfile index af8dadc5b1b1..095630ef65cb 100644 --- a/fastlane/Jetpack-Fastfile +++ b/fastlane/Jetpack-Fastfile @@ -80,7 +80,7 @@ APP_IDENTIFIER = 'com.automattic.jetpack' comment_on_pr( project: 'wordpress-mobile/wordpress-ios', - pr_number: ENV['BUILDKITE_PULL_REQUEST'], + pr_number: Integer(ENV['BUILDKITE_PULL_REQUEST']), reuse_identifier: 'jetpack-installable-build-link', body: comment_body ) From 446811d1c2e755f6581b5d550f6405dbe47b5368 Mon Sep 17 00:00:00 2001 From: Jeremy Massel <1123407+jkmassel@users.noreply.github.com> Date: Sat, 4 Dec 2021 13:08:44 -0700 Subject: [PATCH 007/114] Fix version codes --- fastlane/Fastfile | 2 +- fastlane/Jetpack-Fastfile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/fastlane/Fastfile b/fastlane/Fastfile index 96ea5dfb3280..d72d1a088ff5 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -593,7 +593,7 @@ platform :ios do UI.message("Successfully built and uploaded installable build here: #{download_url}") install_url = 'https://install.appcenter.ms/orgs/automattic/apps/WPiOS-One-Offs/' - comment_body = "You can test the WordPress changes on this Pull Request by downloading it from AppCenter here with build number: #{build_number}. IPA is available here. If you need access to this, you can ask a maintainer to add you." + comment_body = "You can test the WordPress changes on this Pull Request by downloading it from AppCenter here with build number: #{build_number}. IPA is available here. If you need access to this, you can ask a maintainer to add you." comment_on_pr( project: 'wordpress-mobile/wordpress-ios', diff --git a/fastlane/Jetpack-Fastfile b/fastlane/Jetpack-Fastfile index 095630ef65cb..3019725ae2b6 100644 --- a/fastlane/Jetpack-Fastfile +++ b/fastlane/Jetpack-Fastfile @@ -76,7 +76,7 @@ APP_IDENTIFIER = 'com.automattic.jetpack' UI.message("Successfully built and uploaded installable build here: #{download_url}") install_url = 'https://install.appcenter.ms/orgs/automattic/apps/jetpack-installable-builds/' - comment_body = "You can test the Jetpack changes on this Pull Request by downloading it from AppCenter here with build number: #{build_number}. IPA is available here. If you need access to this, you can ask a maintainer to add you." + comment_body = "You can test the Jetpack changes on this Pull Request by downloading it from AppCenter here with build number: #{build_number}. IPA is available here. If you need access to this, you can ask a maintainer to add you." comment_on_pr( project: 'wordpress-mobile/wordpress-ios', From 017b585d78a5bfdedc3d3f5e8e7a0a444713270f Mon Sep 17 00:00:00 2001 From: Jeremy Massel <1123407+jkmassel@users.noreply.github.com> Date: Sat, 4 Dec 2021 13:13:05 -0700 Subject: [PATCH 008/114] Only create installable builds for PRs --- .buildkite/pipeline.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.buildkite/pipeline.yml b/.buildkite/pipeline.yml index 58c3a701bca1..03347fe75fa5 100644 --- a/.buildkite/pipeline.yml +++ b/.buildkite/pipeline.yml @@ -20,11 +20,13 @@ steps: command: ".buildkite/commands/installable-build-wordpress.sh" env: *common_env plugins: *common_plugins + if: build.pull_request.id != null - label: ":hammer_and_wrench: Jetpack Installable Build" command: ".buildkite/commands/installable-build-jetpack.sh" env: *common_env plugins: *common_plugins + if: build.pull_request.id != null ################# # Build the app From 8ab3f5c6c38ce76fc1c49f318384f6a0ea3e2a2c Mon Sep 17 00:00:00 2001 From: Jeremy Massel <1123407+jkmassel@users.noreply.github.com> Date: Mon, 6 Dec 2021 12:47:40 -0700 Subject: [PATCH 009/114] Use the `last_git_commit` action Co-authored-by: Olivier Halligon --- fastlane/Jetpack-Fastfile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/fastlane/Jetpack-Fastfile b/fastlane/Jetpack-Fastfile index 3019725ae2b6..9d2595c02908 100644 --- a/fastlane/Jetpack-Fastfile +++ b/fastlane/Jetpack-Fastfile @@ -23,8 +23,7 @@ APP_IDENTIFIER = 'com.automattic.jetpack' version_config_path = File.join(PROJECT_ROOT_FOLDER, "config", "Version.internal.xcconfig") versions = Xcodeproj::Config.new(File.new(version_config_path)).to_hash - long_hash = Git.open(PROJECT_ROOT_FOLDER).revparse('HEAD') - short_hash = `git rev-parse --short #{long_hash}`.strip! + short_hash = last_git_commit[:abbreviated_commit_hash] build_number = [ short_hash, From e0173f1774aa59787588ab759ab776150f3cc49b Mon Sep 17 00:00:00 2001 From: Jeremy Massel <1123407+jkmassel@users.noreply.github.com> Date: Thu, 9 Dec 2021 13:54:20 -0700 Subject: [PATCH 010/114] Fix long step names --- .buildkite/pipeline.yml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/.buildkite/pipeline.yml b/.buildkite/pipeline.yml index 03347fe75fa5..27567e35539d 100644 --- a/.buildkite/pipeline.yml +++ b/.buildkite/pipeline.yml @@ -16,13 +16,16 @@ steps: ################# # Create Installable Builds for WP and JP ################# - - label: ":hammer_and_wrench: WordPress Installable Build" + - label: "🛠 WordPress Installable Build" command: ".buildkite/commands/installable-build-wordpress.sh" env: *common_env plugins: *common_plugins if: build.pull_request.id != null + notify: + - github_commit_status: + context: "WordPress Installable Build" - - label: ":hammer_and_wrench: Jetpack Installable Build" + - label: "🛠 Jetpack Installable Build" command: ".buildkite/commands/installable-build-jetpack.sh" env: *common_env plugins: *common_plugins @@ -31,7 +34,7 @@ steps: ################# # Build the app ################# - - label: ":pipeline: Build for Testing" + - label: "🛠 Build for Testing" key: "build" command: ".buildkite/commands/build-for-testing.sh" env: *common_env From 19e1106b1a12de17987349c42f92f577a65404cb Mon Sep 17 00:00:00 2001 From: Jeremy Massel <1123407+jkmassel@users.noreply.github.com> Date: Thu, 9 Dec 2021 13:56:18 -0700 Subject: [PATCH 011/114] Ensure Sentry is installed --- fastlane/Fastfile | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/fastlane/Fastfile b/fastlane/Fastfile index d72d1a088ff5..3cd4184b3a6f 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -540,6 +540,8 @@ platform :ios do ##################################################################################### desc 'Builds and uploads an installable build' lane :build_and_upload_installable_build do |options| + ensure_sentry_installed + alpha_code_signing # Get the current build version, and update it if needed @@ -620,6 +622,8 @@ platform :ios do ios_build_prechecks(skip_confirm: options[:skip_confirm], internal: true) unless options[:skip_prechecks] ios_build_preflight unless options[:skip_prechecks] + ensure_sentry_installed + internal_code_signing gym( @@ -671,6 +675,7 @@ platform :ios do ios_build_prechecks(skip_confirm: options[:skip_confirm], external: true) unless options[:skip_prechecks] ios_build_preflight unless options[:skip_prechecks] + ensure_sentry_installed appstore_code_signing gym( @@ -932,6 +937,10 @@ def read_version_from_config end end +def ensure_sentry_installed + UI.user_error('sentry-cli not installed') unless sh('command -v sentry-cli') +end + # Application-agnostic settings for the `upload_to_app_store` action, also # known as `deliver`. UPLOAD_TO_APP_STORE_COMMON_PARAMS = { From 138b43f7a3b8a43d164533fefc12e950288afe44 Mon Sep 17 00:00:00 2001 From: Jeremy Massel <1123407+jkmassel@users.noreply.github.com> Date: Thu, 9 Dec 2021 13:58:44 -0700 Subject: [PATCH 012/114] Use `develop` version of release toolkit --- Gemfile.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 32238ed49df5..0203192f7aab 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,7 +1,7 @@ GIT remote: git@github.com:wordpress-mobile/release-toolkit - revision: 83e4d5f036f1871ce6f8e9411550d4040cebddca - branch: add/github-comment-action + revision: b72dd836bd95f195d5da804b887a22971a999006 + branch: develop specs: fastlane-plugin-wpmreleasetoolkit (2.1.0) activesupport (~> 5) From d59b875e01c6775174336ccfbbb27d66e2dfb5d4 Mon Sep 17 00:00:00 2001 From: Jeremy Massel <1123407+jkmassel@users.noreply.github.com> Date: Wed, 15 Dec 2021 17:19:44 -0700 Subject: [PATCH 013/114] Use short github job names --- .buildkite/pipeline.yml | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/.buildkite/pipeline.yml b/.buildkite/pipeline.yml index 27567e35539d..04557652cc24 100644 --- a/.buildkite/pipeline.yml +++ b/.buildkite/pipeline.yml @@ -30,6 +30,9 @@ steps: env: *common_env plugins: *common_plugins if: build.pull_request.id != null + notify: + - github_commit_status: + context: "Jetpack Installable Build" ################# # Build the app @@ -39,6 +42,9 @@ steps: command: ".buildkite/commands/build-for-testing.sh" env: *common_env plugins: *common_plugins + notify: + - github_commit_status: + context: "Build for Testing" ################# # Run Unit Tests @@ -48,6 +54,9 @@ steps: depends_on: "build" env: *common_env plugins: *common_plugins + notify: + - github_commit_status: + context: "Unit Tests" ################# # Lint Translations @@ -59,6 +68,9 @@ steps: image: "public.ecr.aws/automattic/glotpress-validator:1.0.0" agents: queue: "default" + notify: + - github_commit_status: + context: "Lint Translations" ################# # UI Tests @@ -70,7 +82,9 @@ steps: plugins: *common_plugins artifact_paths: - "build/results/" - + notify: + - github_commit_status: + context: "UI Tests (iPhone)" - label: "🧪 UI Tests (iPad)" command: .buildkite/commands/run-ui-tests.sh WordPressUITests "iPad Air (4th generation)" 15.0 @@ -79,3 +93,6 @@ steps: plugins: *common_plugins artifact_paths: - "build/results/" + notify: + - github_commit_status: + context: "UI Tests (iPad)" From 31d72a895248280f632b0fac046dce3addb15690 Mon Sep 17 00:00:00 2001 From: alpavanoglu Date: Tue, 11 Jan 2022 23:36:48 +0100 Subject: [PATCH 014/114] Add `CaseIterable` conformance to `Filter` --- .../Controllers/NotificationsViewController.swift | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationsViewController.swift b/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationsViewController.swift index bebd1da78911..8bd5680c6466 100644 --- a/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationsViewController.swift +++ b/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationsViewController.swift @@ -584,7 +584,7 @@ private extension NotificationsViewController { WPStyleGuide.configureFilterTabBar(filterTabBar) filterTabBar.superview?.backgroundColor = .filterBarBackground - filterTabBar.items = Filter.allFilters + filterTabBar.items = Filter.allCases filterTabBar.addTarget(self, action: #selector(selectedFilterDidChange(_:)), for: .valueChanged) updateFilterBarConstraints() } @@ -1691,7 +1691,7 @@ private extension NotificationsViewController { } } - enum Filter: Int, FilterTabBarItem { + enum Filter: Int, FilterTabBarItem, CaseIterable { case none = 0 case unread = 1 case comment = 2 @@ -1770,7 +1770,6 @@ private extension NotificationsViewController { } static let sortKey = "timestamp" - static let allFilters = [Filter.none, .unread, .comment, .follow, .like] } enum Settings { From 684c39f9152308b7cc74163a61eae162c7f1e7e9 Mon Sep 17 00:00:00 2001 From: alpavanoglu Date: Wed, 12 Jan 2022 13:22:54 +0100 Subject: [PATCH 015/114] Add `markAllAsRead` to UINavigationBar --- .../NotificationsViewController.swift | 68 +++++++++++++++++-- 1 file changed, 63 insertions(+), 5 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationsViewController.swift b/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationsViewController.swift index 8bd5680c6466..b27ce6988ac2 100644 --- a/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationsViewController.swift +++ b/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationsViewController.swift @@ -97,10 +97,25 @@ class NotificationsViewController: UITableViewController, UIViewControllerRestor }() /// Notification Settings button - lazy var notificationSettingsButton: UIBarButtonItem = { - let button = UIBarButtonItem(image: .gridicon(.cog), style: .plain, target: self, action: #selector(showNotificationSettings)) - button.accessibilityLabel = NSLocalizedString("Notification Settings", comment: "Link to Notification Settings section") - return button + lazy var notificationSettingsButton: UIButton = { + let settingsButton: UIButton = UIButton.init(type: .custom) + settingsButton.setImage(.gridicon(.cog), for: .normal) + settingsButton.addTarget(self, action: #selector(showNotificationSettings), for: .touchUpInside) + settingsButton.translatesAutoresizingMaskIntoConstraints = false + settingsButton.contentEdgeInsets = .zero + settingsButton.accessibilityLabel = NSLocalizedString("Notification Settings", comment: "Link to Notification Settings section") + return settingsButton + }() + + /// Mark All As Read button + lazy var markAllAsReadButton: UIButton = { + let markButton: UIButton = UIButton.init(type: .custom) + markButton.setImage(.gridicon(.checkmark), for: .normal) + markButton.addTarget(self, action: #selector(markAllAsRead), for: .touchUpInside) + markButton.translatesAutoresizingMaskIntoConstraints = false + markButton.contentMode = .right + markButton.accessibilityLabel = NSLocalizedString("Mark All As Read", comment: "-") // TODO: Check the accessibility strings + return markButton }() /// Convenience property that stores feature flag value for unified list. @@ -512,9 +527,46 @@ private extension NotificationsViewController { } func updateNavigationItems() { - navigationItem.rightBarButtonItem = shouldDisplaySettingsButton ? notificationSettingsButton : nil + let stackView = rightBarButtonStackView() + +// if FeatureFlag.markAllNotificationsAsRead.enabled { + stackView.addArrangedSubview(markAllAsReadButton) +// } + + if shouldDisplaySettingsButton { + stackView.addArrangedSubview(notificationSettingsButton) + } + + let rightBarButton = UIBarButtonItem(customView: stackView) + navigationItem.setRightBarButton(rightBarButton, animated: false) + + setupBarButtonConstraints() + } + + func rightBarButtonStackView() -> UIStackView { + let stackView = UIStackView() + stackView.distribution = .equalSpacing + stackView.axis = .horizontal + stackView.alignment = .center + stackView.spacing = 0 + return stackView } + func setupBarButtonConstraints() { + notificationSettingsButton.translatesAutoresizingMaskIntoConstraints = false + markAllAsReadButton.translatesAutoresizingMaskIntoConstraints = false + + // TODO: Check if a common/global constant exists + let minimumTappableLength: CGFloat = 44 + NSLayoutConstraint.activate([ + notificationSettingsButton.widthAnchor.constraint(equalToConstant: minimumTappableLength), + notificationSettingsButton.heightAnchor.constraint(equalToConstant: minimumTappableLength), + markAllAsReadButton.widthAnchor.constraint(equalToConstant: minimumTappableLength), + markAllAsReadButton.heightAnchor.constraint(equalToConstant: minimumTappableLength) + ]) + } + + @objc func closeNotificationSettings() { dismiss(animated: true, completion: nil) } @@ -820,6 +872,12 @@ extension NotificationsViewController { present(navigationController, animated: true, completion: nil) } + + /// Marks all messages as read under the selected filter. + /// + @objc func markAllAsRead() { + // TODO + } } From e0c7d9d1df093af5fa3977d5c9f51a45503b20df Mon Sep 17 00:00:00 2001 From: alpavanoglu Date: Wed, 12 Jan 2022 13:30:23 +0100 Subject: [PATCH 016/114] Add `markAllNotificationsAsRead` Feature Flag --- .../Classes/Utility/BuildInformation/FeatureFlag.swift | 6 ++++++ .../Controllers/NotificationsViewController.swift | 5 +++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/WordPress/Classes/Utility/BuildInformation/FeatureFlag.swift b/WordPress/Classes/Utility/BuildInformation/FeatureFlag.swift index 929ab13a483e..fc4e16a13c88 100644 --- a/WordPress/Classes/Utility/BuildInformation/FeatureFlag.swift +++ b/WordPress/Classes/Utility/BuildInformation/FeatureFlag.swift @@ -24,6 +24,7 @@ enum FeatureFlag: Int, CaseIterable, OverrideableFlag { case commentThreadModerationMenu case mySiteDashboard case followConversationPostDetails + case markAllNotificationsAsRead /// Returns a boolean indicating if the feature is enabled var enabled: Bool { @@ -78,6 +79,9 @@ enum FeatureFlag: Int, CaseIterable, OverrideableFlag { return BuildConfiguration.current == .localDeveloper case .followConversationPostDetails: return false + case .markAllNotificationsAsRead: + return false + } } @@ -148,6 +152,8 @@ extension FeatureFlag { return "My Site Dashboard" case .followConversationPostDetails: return "Follow Conversation from Post Details" + case .markAllNotificationsAsRead: + return "Mark Notifications As Read" } } diff --git a/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationsViewController.swift b/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationsViewController.swift index b27ce6988ac2..752a51874b65 100644 --- a/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationsViewController.swift +++ b/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationsViewController.swift @@ -529,9 +529,10 @@ private extension NotificationsViewController { func updateNavigationItems() { let stackView = rightBarButtonStackView() -// if FeatureFlag.markAllNotificationsAsRead.enabled { + // TODO: Should we inject this for testability? + if FeatureFlag.markAllNotificationsAsRead.enabled { stackView.addArrangedSubview(markAllAsReadButton) -// } + } if shouldDisplaySettingsButton { stackView.addArrangedSubview(notificationSettingsButton) From 17d58330a3cd6c5a7c0c3b2f70df1872ad02ca17 Mon Sep 17 00:00:00 2001 From: alpavanoglu Date: Wed, 12 Jan 2022 14:01:49 +0100 Subject: [PATCH 017/114] Fix `ReaderTabViewController` bar button positioning --- .../NotificationsViewController.swift | 41 +++---------------- .../DoubleBarControlConfigurer.swift | 36 ++++++++++++++++ .../ReaderTabViewController.swift | 17 ++++---- WordPress/WordPress.xcodeproj/project.pbxproj | 10 ++++- 4 files changed, 59 insertions(+), 45 deletions(-) create mode 100644 WordPress/Classes/ViewRelated/Reader/Tab Navigation/DoubleBarControlConfigurer.swift diff --git a/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationsViewController.swift b/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationsViewController.swift index 752a51874b65..a780acac0e0e 100644 --- a/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationsViewController.swift +++ b/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationsViewController.swift @@ -527,47 +527,16 @@ private extension NotificationsViewController { } func updateNavigationItems() { - let stackView = rightBarButtonStackView() - - // TODO: Should we inject this for testability? - if FeatureFlag.markAllNotificationsAsRead.enabled { - stackView.addArrangedSubview(markAllAsReadButton) - } - - if shouldDisplaySettingsButton { - stackView.addArrangedSubview(notificationSettingsButton) - } + // TODO: Should we inject `FeatureFlag` for testability? + let stackView = DoubleBarControlConfigurer.stackView( + with: FeatureFlag.markAllNotificationsAsRead.enabled ? markAllAsReadButton : nil, + rightControl: shouldDisplaySettingsButton ? notificationSettingsButton : nil + ) let rightBarButton = UIBarButtonItem(customView: stackView) navigationItem.setRightBarButton(rightBarButton, animated: false) - - setupBarButtonConstraints() - } - - func rightBarButtonStackView() -> UIStackView { - let stackView = UIStackView() - stackView.distribution = .equalSpacing - stackView.axis = .horizontal - stackView.alignment = .center - stackView.spacing = 0 - return stackView } - func setupBarButtonConstraints() { - notificationSettingsButton.translatesAutoresizingMaskIntoConstraints = false - markAllAsReadButton.translatesAutoresizingMaskIntoConstraints = false - - // TODO: Check if a common/global constant exists - let minimumTappableLength: CGFloat = 44 - NSLayoutConstraint.activate([ - notificationSettingsButton.widthAnchor.constraint(equalToConstant: minimumTappableLength), - notificationSettingsButton.heightAnchor.constraint(equalToConstant: minimumTappableLength), - markAllAsReadButton.widthAnchor.constraint(equalToConstant: minimumTappableLength), - markAllAsReadButton.heightAnchor.constraint(equalToConstant: minimumTappableLength) - ]) - } - - @objc func closeNotificationSettings() { dismiss(animated: true, completion: nil) } diff --git a/WordPress/Classes/ViewRelated/Reader/Tab Navigation/DoubleBarControlConfigurer.swift b/WordPress/Classes/ViewRelated/Reader/Tab Navigation/DoubleBarControlConfigurer.swift new file mode 100644 index 000000000000..af0ecdf23cdd --- /dev/null +++ b/WordPress/Classes/ViewRelated/Reader/Tab Navigation/DoubleBarControlConfigurer.swift @@ -0,0 +1,36 @@ +import UIKit + +// Where to place this file? +enum DoubleBarControlConfigurer { + static func stackView(with leftControl: UIControl?, rightControl: UIControl?) -> UIStackView { + let stackView = UIStackView(arrangedSubviews: [leftControl, rightControl].compactMap({ $0 })) + stackView.distribution = .equalSpacing + stackView.axis = .horizontal + stackView.alignment = .center + stackView.spacing = 0 + + setupBarButtonConstraints(leftControl: leftControl, rightControl: rightControl) + + return stackView + } + + private static func setupBarButtonConstraints(leftControl: UIControl?, rightControl: UIControl?) { + setupConstraints(for: leftControl) + setupConstraints(for: rightControl) + } + + private static func setupConstraints(for control: UIControl?) { + guard let control = control else { + return + } + + // TODO: Check if a common/global constant exists + let minimumTappableLength: CGFloat = 44 + + control.translatesAutoresizingMaskIntoConstraints = false + NSLayoutConstraint.activate([ + control.widthAnchor.constraint(equalToConstant: minimumTappableLength), + control.heightAnchor.constraint(equalToConstant: minimumTappableLength) + ]) + } +} diff --git a/WordPress/Classes/ViewRelated/Reader/Tab Navigation/ReaderTabViewController.swift b/WordPress/Classes/ViewRelated/Reader/Tab Navigation/ReaderTabViewController.swift index be2f0e6b5d03..4316476da6c5 100644 --- a/WordPress/Classes/ViewRelated/Reader/Tab Navigation/ReaderTabViewController.swift +++ b/WordPress/Classes/ViewRelated/Reader/Tab Navigation/ReaderTabViewController.swift @@ -70,10 +70,11 @@ class ReaderTabViewController: UIViewController { func setupNavigationButtons() { // Settings Button - let settingsButton = UIBarButtonItem(image: UIImage.gridicon(.cog), - style: .plain, - target: self, - action: #selector(didTapSettingsButton)) + let settingsButton: UIButton = UIButton.init(type: .custom) + settingsButton.setImage(.gridicon(.cog), for: .normal) + settingsButton.addTarget(self, action: #selector(didTapSettingsButton), for: .touchUpInside) + settingsButton.translatesAutoresizingMaskIntoConstraints = false + settingsButton.contentEdgeInsets = .zero settingsButton.accessibilityIdentifier = ReaderTabConstants.settingsButtonIdentifier // Search Button @@ -81,10 +82,12 @@ class ReaderTabViewController: UIViewController { searchButton.setImage(.gridicon(.search), for: .normal) searchButton.addTarget(self, action: #selector(didTapSearchButton), for: .touchUpInside) searchButton.accessibilityIdentifier = ReaderTabConstants.searchButtonAccessibilityIdentifier + searchButton.translatesAutoresizingMaskIntoConstraints = false + searchButton.contentEdgeInsets = .zero - let searchBarButton = UIBarButtonItem(customView: searchButton) - - navigationItem.rightBarButtonItems = [searchBarButton, settingsButton] + let stackView = DoubleBarControlConfigurer.stackView(with: settingsButton, rightControl: searchButton) + let rightBarButton = UIBarButtonItem(customView: stackView) + navigationItem.setRightBarButton(rightBarButton, animated: false) } override func loadView() { diff --git a/WordPress/WordPress.xcodeproj/project.pbxproj b/WordPress/WordPress.xcodeproj/project.pbxproj index 1e1ccc5549f5..8442bff04beb 100644 --- a/WordPress/WordPress.xcodeproj/project.pbxproj +++ b/WordPress/WordPress.xcodeproj/project.pbxproj @@ -103,6 +103,8 @@ 087EBFA81F02313E001F7ACE /* MediaThumbnailService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 087EBFA71F02313E001F7ACE /* MediaThumbnailService.swift */; }; 0885A3671E837AFE00619B4D /* URLIncrementalFilenameTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0885A3661E837AFE00619B4D /* URLIncrementalFilenameTests.swift */; }; 088B89891DA6F93B000E8DEF /* ReaderPostCardContentLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088B89881DA6F93B000E8DEF /* ReaderPostCardContentLabel.swift */; }; + 088C0603278F0367002C742F /* DoubleBarControlConfigurer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088C0602278F0367002C742F /* DoubleBarControlConfigurer.swift */; }; + 088C0604278F0367002C742F /* DoubleBarControlConfigurer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088C0602278F0367002C742F /* DoubleBarControlConfigurer.swift */; }; 08A2AD791CCED2A800E84454 /* PostTagServiceTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 08A2AD781CCED2A800E84454 /* PostTagServiceTests.m */; }; 08A2AD7B1CCED8E500E84454 /* PostCategoryServiceTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 08A2AD7A1CCED8E500E84454 /* PostCategoryServiceTests.m */; }; 08AAD69F1CBEA47D002B2418 /* MenusService.m in Sources */ = {isa = PBXBuildFile; fileRef = 08AAD69E1CBEA47D002B2418 /* MenusService.m */; }; @@ -4728,6 +4730,7 @@ 087EBFA71F02313E001F7ACE /* MediaThumbnailService.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MediaThumbnailService.swift; sourceTree = ""; }; 0885A3661E837AFE00619B4D /* URLIncrementalFilenameTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = URLIncrementalFilenameTests.swift; sourceTree = ""; }; 088B89881DA6F93B000E8DEF /* ReaderPostCardContentLabel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReaderPostCardContentLabel.swift; sourceTree = ""; }; + 088C0602278F0367002C742F /* DoubleBarControlConfigurer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DoubleBarControlConfigurer.swift; sourceTree = ""; }; 08A2AD781CCED2A800E84454 /* PostTagServiceTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PostTagServiceTests.m; sourceTree = ""; }; 08A2AD7A1CCED8E500E84454 /* PostCategoryServiceTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PostCategoryServiceTests.m; sourceTree = ""; }; 08AAD69D1CBEA47D002B2418 /* MenusService.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MenusService.h; sourceTree = ""; }; @@ -8517,7 +8520,7 @@ path = Classes; sourceTree = ""; }; - 29B97314FDCFA39411CA2CEA = { + 29B97314FDCFA39411CA2CEA /* CustomTemplate */ = { isa = PBXGroup; children = ( 3F20FDF3276BF21000DA3CAD /* Packages */, @@ -8940,6 +8943,7 @@ 3F09CCA72428FF3300D00A8C /* ReaderTabViewController.swift */, 3FF1A852242D5FCB00373F5D /* WPTabBarController+ReaderTabNavigation.swift */, 3F6975FE242D941E001F1807 /* ReaderTabViewModel.swift */, + 088C0602278F0367002C742F /* DoubleBarControlConfigurer.swift */, ); path = "Tab Navigation"; sourceTree = ""; @@ -15289,7 +15293,7 @@ bg, sk, ); - mainGroup = 29B97314FDCFA39411CA2CEA; + mainGroup = 29B97314FDCFA39411CA2CEA /* CustomTemplate */; packageReferences = ( 3FF1442E266F3C2400138163 /* XCRemoteSwiftPackageReference "ScreenObject" */, 3FC2C33B26C4CF0A00C6D98F /* XCRemoteSwiftPackageReference "XCUITestHelpers" */, @@ -18231,6 +18235,7 @@ 9A09F915230C3E9700F42AB7 /* StoreFetchingStatus.swift in Sources */, F582060223A85495005159A9 /* SiteDateFormatters.swift in Sources */, F504D44825D717F600A2764C /* PostEditor.swift in Sources */, + 088C0603278F0367002C742F /* DoubleBarControlConfigurer.swift in Sources */, 400A2C8B2217A985000A8A59 /* ClicksStatsRecordValue+CoreDataClass.swift in Sources */, FAD9458E25B5678700F011B5 /* JetpackRestoreWarningCoordinator.swift in Sources */, 5DB3BA0518D0E7B600F3F3E9 /* WPPickerView.m in Sources */, @@ -19300,6 +19305,7 @@ FABB21002602FC2C00C8785C /* WordPress-91-92.xcmappingmodel in Sources */, FABB21012602FC2C00C8785C /* ReaderCardDiscoverAttributionView.swift in Sources */, FABB21022602FC2C00C8785C /* Plugin.swift in Sources */, + 088C0604278F0367002C742F /* DoubleBarControlConfigurer.swift in Sources */, FABB21032602FC2C00C8785C /* JetpackActivityLogViewController.swift in Sources */, FABB21042602FC2C00C8785C /* FormattableMediaContent.swift in Sources */, FABB21052602FC2C00C8785C /* CollabsableHeaderFilterCollectionViewCell.swift in Sources */, From 643fb80a1f3be07d393416b10bcfb9dbcc5810bf Mon Sep 17 00:00:00 2001 From: alpavanoglu Date: Sat, 15 Jan 2022 16:32:40 +0100 Subject: [PATCH 018/114] Update accessibility comment for `markButton` --- .../Controllers/NotificationsViewController.swift | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationsViewController.swift b/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationsViewController.swift index a780acac0e0e..39dd7b921e6c 100644 --- a/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationsViewController.swift +++ b/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationsViewController.swift @@ -114,7 +114,10 @@ class NotificationsViewController: UITableViewController, UIViewControllerRestor markButton.addTarget(self, action: #selector(markAllAsRead), for: .touchUpInside) markButton.translatesAutoresizingMaskIntoConstraints = false markButton.contentMode = .right - markButton.accessibilityLabel = NSLocalizedString("Mark All As Read", comment: "-") // TODO: Check the accessibility strings + markButton.accessibilityLabel = NSLocalizedString( + "Mark All As Read", + comment: "Marks all notifications under the filter as read" + ) return markButton }() From 6554293f2ffd570933e27b4c9a2d6124fa8c247d Mon Sep 17 00:00:00 2001 From: alpavanoglu Date: Sat, 15 Jan 2022 21:32:40 +0100 Subject: [PATCH 019/114] Remove TODO's --- .../Notifications/Controllers/NotificationsViewController.swift | 1 - .../Reader/Tab Navigation/DoubleBarControlConfigurer.swift | 1 - 2 files changed, 2 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationsViewController.swift b/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationsViewController.swift index 274382c47053..563529cdb4bf 100644 --- a/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationsViewController.swift +++ b/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationsViewController.swift @@ -491,7 +491,6 @@ private extension NotificationsViewController { } func updateNavigationItems() { - // TODO: Should we inject `FeatureFlag` for testability? let stackView = DoubleBarControlConfigurer.stackView( with: FeatureFlag.markAllNotificationsAsRead.enabled ? markAllAsReadButton : nil, rightControl: shouldDisplaySettingsButton ? notificationSettingsButton : nil diff --git a/WordPress/Classes/ViewRelated/Reader/Tab Navigation/DoubleBarControlConfigurer.swift b/WordPress/Classes/ViewRelated/Reader/Tab Navigation/DoubleBarControlConfigurer.swift index af0ecdf23cdd..d00d686ff31c 100644 --- a/WordPress/Classes/ViewRelated/Reader/Tab Navigation/DoubleBarControlConfigurer.swift +++ b/WordPress/Classes/ViewRelated/Reader/Tab Navigation/DoubleBarControlConfigurer.swift @@ -24,7 +24,6 @@ enum DoubleBarControlConfigurer { return } - // TODO: Check if a common/global constant exists let minimumTappableLength: CGFloat = 44 control.translatesAutoresizingMaskIntoConstraints = false From 092e94724be9c2196cf56756ec03151bfc776d8a Mon Sep 17 00:00:00 2001 From: alpavanoglu Date: Tue, 18 Jan 2022 21:05:37 +0100 Subject: [PATCH 020/114] Replace stackView solution with `setRightBarButtonItems` API --- .../NotificationsViewController.swift | 46 +++++++++++-------- 1 file changed, 27 insertions(+), 19 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationsViewController.swift b/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationsViewController.swift index 563529cdb4bf..f1b2dbf9fc12 100644 --- a/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationsViewController.swift +++ b/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationsViewController.swift @@ -92,23 +92,28 @@ class NotificationsViewController: UITableViewController, UIViewControllerRestor }() /// Notification Settings button - lazy var notificationSettingsButton: UIButton = { - let settingsButton: UIButton = UIButton.init(type: .custom) - settingsButton.setImage(.gridicon(.cog), for: .normal) - settingsButton.addTarget(self, action: #selector(showNotificationSettings), for: .touchUpInside) - settingsButton.translatesAutoresizingMaskIntoConstraints = false - settingsButton.contentEdgeInsets = .zero - settingsButton.accessibilityLabel = NSLocalizedString("Notification Settings", comment: "Link to Notification Settings section") + lazy var settingsBarButtonItem: UIBarButtonItem = { + let settingsButton = UIBarButtonItem( + image: .gridicon(.cog), + style: .plain, + target: self, + action: #selector(showNotificationSettings) + ) + settingsButton.accessibilityLabel = NSLocalizedString( + "Notification Settings", + comment: "Link to Notification Settings section" + ) return settingsButton }() /// Mark All As Read button - lazy var markAllAsReadButton: UIButton = { - let markButton: UIButton = UIButton.init(type: .custom) - markButton.setImage(.gridicon(.checkmark), for: .normal) - markButton.addTarget(self, action: #selector(markAllAsRead), for: .touchUpInside) - markButton.translatesAutoresizingMaskIntoConstraints = false - markButton.contentMode = .right + lazy var markAllAsReadBarButtonItem: UIBarButtonItem = { + let markButton = UIBarButtonItem( + image: .gridicon(.checkmark), + style: .plain, + target: self, + action: #selector(markAllAsRead) + ) markButton.accessibilityLabel = NSLocalizedString( "Mark All As Read", comment: "Marks all notifications under the filter as read" @@ -491,13 +496,16 @@ private extension NotificationsViewController { } func updateNavigationItems() { - let stackView = DoubleBarControlConfigurer.stackView( - with: FeatureFlag.markAllNotificationsAsRead.enabled ? markAllAsReadButton : nil, - rightControl: shouldDisplaySettingsButton ? notificationSettingsButton : nil - ) + var barItems: [UIBarButtonItem] = [] + if FeatureFlag.markAllNotificationsAsRead.enabled { + barItems.append(markAllAsReadBarButtonItem) + } + + if shouldDisplaySettingsButton { + barItems.append(settingsBarButtonItem) + } - let rightBarButton = UIBarButtonItem(customView: stackView) - navigationItem.setRightBarButton(rightBarButton, animated: false) + navigationItem.setRightBarButtonItems(barItems, animated: false) } @objc func closeNotificationSettings() { From d971268308054787da6c7af639b5918d36d3f6f6 Mon Sep 17 00:00:00 2001 From: alpavanoglu Date: Tue, 18 Jan 2022 21:06:37 +0100 Subject: [PATCH 021/114] Revert `ReaderTabViewController` changes --- .../ReaderTabViewController.swift | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Reader/Tab Navigation/ReaderTabViewController.swift b/WordPress/Classes/ViewRelated/Reader/Tab Navigation/ReaderTabViewController.swift index 4316476da6c5..be2f0e6b5d03 100644 --- a/WordPress/Classes/ViewRelated/Reader/Tab Navigation/ReaderTabViewController.swift +++ b/WordPress/Classes/ViewRelated/Reader/Tab Navigation/ReaderTabViewController.swift @@ -70,11 +70,10 @@ class ReaderTabViewController: UIViewController { func setupNavigationButtons() { // Settings Button - let settingsButton: UIButton = UIButton.init(type: .custom) - settingsButton.setImage(.gridicon(.cog), for: .normal) - settingsButton.addTarget(self, action: #selector(didTapSettingsButton), for: .touchUpInside) - settingsButton.translatesAutoresizingMaskIntoConstraints = false - settingsButton.contentEdgeInsets = .zero + let settingsButton = UIBarButtonItem(image: UIImage.gridicon(.cog), + style: .plain, + target: self, + action: #selector(didTapSettingsButton)) settingsButton.accessibilityIdentifier = ReaderTabConstants.settingsButtonIdentifier // Search Button @@ -82,12 +81,10 @@ class ReaderTabViewController: UIViewController { searchButton.setImage(.gridicon(.search), for: .normal) searchButton.addTarget(self, action: #selector(didTapSearchButton), for: .touchUpInside) searchButton.accessibilityIdentifier = ReaderTabConstants.searchButtonAccessibilityIdentifier - searchButton.translatesAutoresizingMaskIntoConstraints = false - searchButton.contentEdgeInsets = .zero - let stackView = DoubleBarControlConfigurer.stackView(with: settingsButton, rightControl: searchButton) - let rightBarButton = UIBarButtonItem(customView: stackView) - navigationItem.setRightBarButton(rightBarButton, animated: false) + let searchBarButton = UIBarButtonItem(customView: searchButton) + + navigationItem.rightBarButtonItems = [searchBarButton, settingsButton] } override func loadView() { From bd404ec788b8c9d2bfcb90cab272b3bcc296f3ee Mon Sep 17 00:00:00 2001 From: alpavanoglu Date: Tue, 18 Jan 2022 21:12:43 +0100 Subject: [PATCH 022/114] Remove `DoubleBarControlConfigurer` --- .../DoubleBarControlConfigurer.swift | 35 ------------------- WordPress/WordPress.xcodeproj/project.pbxproj | 6 ---- 2 files changed, 41 deletions(-) delete mode 100644 WordPress/Classes/ViewRelated/Reader/Tab Navigation/DoubleBarControlConfigurer.swift diff --git a/WordPress/Classes/ViewRelated/Reader/Tab Navigation/DoubleBarControlConfigurer.swift b/WordPress/Classes/ViewRelated/Reader/Tab Navigation/DoubleBarControlConfigurer.swift deleted file mode 100644 index d00d686ff31c..000000000000 --- a/WordPress/Classes/ViewRelated/Reader/Tab Navigation/DoubleBarControlConfigurer.swift +++ /dev/null @@ -1,35 +0,0 @@ -import UIKit - -// Where to place this file? -enum DoubleBarControlConfigurer { - static func stackView(with leftControl: UIControl?, rightControl: UIControl?) -> UIStackView { - let stackView = UIStackView(arrangedSubviews: [leftControl, rightControl].compactMap({ $0 })) - stackView.distribution = .equalSpacing - stackView.axis = .horizontal - stackView.alignment = .center - stackView.spacing = 0 - - setupBarButtonConstraints(leftControl: leftControl, rightControl: rightControl) - - return stackView - } - - private static func setupBarButtonConstraints(leftControl: UIControl?, rightControl: UIControl?) { - setupConstraints(for: leftControl) - setupConstraints(for: rightControl) - } - - private static func setupConstraints(for control: UIControl?) { - guard let control = control else { - return - } - - let minimumTappableLength: CGFloat = 44 - - control.translatesAutoresizingMaskIntoConstraints = false - NSLayoutConstraint.activate([ - control.widthAnchor.constraint(equalToConstant: minimumTappableLength), - control.heightAnchor.constraint(equalToConstant: minimumTappableLength) - ]) - } -} diff --git a/WordPress/WordPress.xcodeproj/project.pbxproj b/WordPress/WordPress.xcodeproj/project.pbxproj index 15f7ed624338..d6b796ae25ed 100644 --- a/WordPress/WordPress.xcodeproj/project.pbxproj +++ b/WordPress/WordPress.xcodeproj/project.pbxproj @@ -103,8 +103,6 @@ 087EBFA81F02313E001F7ACE /* MediaThumbnailService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 087EBFA71F02313E001F7ACE /* MediaThumbnailService.swift */; }; 0885A3671E837AFE00619B4D /* URLIncrementalFilenameTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0885A3661E837AFE00619B4D /* URLIncrementalFilenameTests.swift */; }; 088B89891DA6F93B000E8DEF /* ReaderPostCardContentLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088B89881DA6F93B000E8DEF /* ReaderPostCardContentLabel.swift */; }; - 088C0603278F0367002C742F /* DoubleBarControlConfigurer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088C0602278F0367002C742F /* DoubleBarControlConfigurer.swift */; }; - 088C0604278F0367002C742F /* DoubleBarControlConfigurer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 088C0602278F0367002C742F /* DoubleBarControlConfigurer.swift */; }; 08A2AD791CCED2A800E84454 /* PostTagServiceTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 08A2AD781CCED2A800E84454 /* PostTagServiceTests.m */; }; 08A2AD7B1CCED8E500E84454 /* PostCategoryServiceTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 08A2AD7A1CCED8E500E84454 /* PostCategoryServiceTests.m */; }; 08AAD69F1CBEA47D002B2418 /* MenusService.m in Sources */ = {isa = PBXBuildFile; fileRef = 08AAD69E1CBEA47D002B2418 /* MenusService.m */; }; @@ -4724,7 +4722,6 @@ 087EBFA71F02313E001F7ACE /* MediaThumbnailService.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MediaThumbnailService.swift; sourceTree = ""; }; 0885A3661E837AFE00619B4D /* URLIncrementalFilenameTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = URLIncrementalFilenameTests.swift; sourceTree = ""; }; 088B89881DA6F93B000E8DEF /* ReaderPostCardContentLabel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReaderPostCardContentLabel.swift; sourceTree = ""; }; - 088C0602278F0367002C742F /* DoubleBarControlConfigurer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DoubleBarControlConfigurer.swift; sourceTree = ""; }; 08A2AD781CCED2A800E84454 /* PostTagServiceTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PostTagServiceTests.m; sourceTree = ""; }; 08A2AD7A1CCED8E500E84454 /* PostCategoryServiceTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PostCategoryServiceTests.m; sourceTree = ""; }; 08AAD69D1CBEA47D002B2418 /* MenusService.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MenusService.h; sourceTree = ""; }; @@ -8934,7 +8931,6 @@ 3F09CCA72428FF3300D00A8C /* ReaderTabViewController.swift */, 3FF1A852242D5FCB00373F5D /* WPTabBarController+ReaderTabNavigation.swift */, 3F6975FE242D941E001F1807 /* ReaderTabViewModel.swift */, - 088C0602278F0367002C742F /* DoubleBarControlConfigurer.swift */, ); path = "Tab Navigation"; sourceTree = ""; @@ -18243,7 +18239,6 @@ 9A09F915230C3E9700F42AB7 /* StoreFetchingStatus.swift in Sources */, F582060223A85495005159A9 /* SiteDateFormatters.swift in Sources */, F504D44825D717F600A2764C /* PostEditor.swift in Sources */, - 088C0603278F0367002C742F /* DoubleBarControlConfigurer.swift in Sources */, 400A2C8B2217A985000A8A59 /* ClicksStatsRecordValue+CoreDataClass.swift in Sources */, FAD9458E25B5678700F011B5 /* JetpackRestoreWarningCoordinator.swift in Sources */, 5DB3BA0518D0E7B600F3F3E9 /* WPPickerView.m in Sources */, @@ -19314,7 +19309,6 @@ FABB21002602FC2C00C8785C /* WordPress-91-92.xcmappingmodel in Sources */, FABB21012602FC2C00C8785C /* ReaderCardDiscoverAttributionView.swift in Sources */, FABB21022602FC2C00C8785C /* Plugin.swift in Sources */, - 088C0604278F0367002C742F /* DoubleBarControlConfigurer.swift in Sources */, FABB21032602FC2C00C8785C /* JetpackActivityLogViewController.swift in Sources */, FABB21042602FC2C00C8785C /* FormattableMediaContent.swift in Sources */, FABB21052602FC2C00C8785C /* CollabsableHeaderFilterCollectionViewCell.swift in Sources */, From 48a970fddfb9ee773ae591435266cc0594a8e31c Mon Sep 17 00:00:00 2001 From: alpavanoglu Date: Tue, 18 Jan 2022 22:16:32 +0100 Subject: [PATCH 023/114] Switch right bar button order --- .../Controllers/NotificationsViewController.swift | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationsViewController.swift b/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationsViewController.swift index f1b2dbf9fc12..7ce56b69d5c5 100644 --- a/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationsViewController.swift +++ b/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationsViewController.swift @@ -497,14 +497,14 @@ private extension NotificationsViewController { func updateNavigationItems() { var barItems: [UIBarButtonItem] = [] - if FeatureFlag.markAllNotificationsAsRead.enabled { - barItems.append(markAllAsReadBarButtonItem) - } - if shouldDisplaySettingsButton { barItems.append(settingsBarButtonItem) } + if FeatureFlag.markAllNotificationsAsRead.enabled { + barItems.append(markAllAsReadBarButtonItem) + } + navigationItem.setRightBarButtonItems(barItems, animated: false) } From 0ffdccd5166396edc133a6ebd67dc3266f172210 Mon Sep 17 00:00:00 2001 From: wargcm <2454408+wargcm@users.noreply.github.com> Date: Sun, 16 Jan 2022 13:12:29 -0500 Subject: [PATCH 024/114] Add transition animation between login epilogue and quick start See: wordpress-mobile/WordPress-iOS#17647 --- .../Blog/QuickStartPromptViewController.swift | 11 ++- .../Blog/QuickStartPromptViewController.xib | 9 +- .../NUX/LoginEpilogueAnimator.swift | 88 +++++++++++++++++++ .../LoginEpilogueTableViewController.swift | 7 +- .../NUX/LoginEpilogueViewController.swift | 16 +++- .../NUX/WordPressAuthenticationManager.swift | 1 + WordPress/WordPress.xcodeproj/project.pbxproj | 10 ++- 7 files changed, 130 insertions(+), 12 deletions(-) create mode 100644 WordPress/Classes/ViewRelated/NUX/LoginEpilogueAnimator.swift diff --git a/WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.swift b/WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.swift index 2a89de65175a..e39d573dd154 100644 --- a/WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.swift +++ b/WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.swift @@ -10,12 +10,15 @@ final class QuickStartPromptViewController: UIViewController { @IBOutlet private weak var siteDescriptionLabel: UILabel! /// Prompt info - @IBOutlet private weak var promptTitleLabel: UILabel! - @IBOutlet private weak var promptDescriptionLabel: UILabel! + @IBOutlet private(set) weak var promptTitleLabel: UILabel! + @IBOutlet private(set) weak var promptDescriptionLabel: UILabel! /// Buttons - @IBOutlet private weak var showMeAroundButton: FancyButton! - @IBOutlet private weak var noThanksButton: FancyButton! + @IBOutlet private(set) weak var showMeAroundButton: FancyButton! + @IBOutlet private(set) weak var noThanksButton: FancyButton! + + /// Constraints + @IBOutlet private(set) weak var scrollViewTopVerticalConstraint: NSLayoutConstraint! // MARK: - Properties diff --git a/WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.xib b/WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.xib index 551d3cb63560..d0928d2bfcc1 100644 --- a/WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.xib +++ b/WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.xib @@ -14,6 +14,7 @@ + @@ -119,12 +120,12 @@ - - + + - + - + diff --git a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueAnimator.swift b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueAnimator.swift new file mode 100644 index 000000000000..bfe0b0b887db --- /dev/null +++ b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueAnimator.swift @@ -0,0 +1,88 @@ +import UIKit + +final class LoginEpilogueAnimator: NSObject, UIViewControllerAnimatedTransitioning { + + private enum Constants { + static let loginAnimationDuration = 0.3 + static let loginAnimationScaleX = 1.0 + static let loginAnimationScaleY = 1.2 + static let quickStartAnimationDuration = 0.3 + static let quickStartPromptStartAlpha = 0.2 + static let quickStartTopEndConstraint = 80.0 + static let hiddenAlpha = 0.0 + static let visibleAlpha = 1.0 + } + + func transitionDuration(using transitionContext: UIViewControllerContextTransitioning?) -> TimeInterval { + return Constants.loginAnimationDuration + Constants.quickStartAnimationDuration + } + + func animateTransition(using transitionContext: UIViewControllerContextTransitioning) { + guard let loginEpilogueViewController = transitionContext.viewController(forKey: .from) as? LoginEpilogueViewController, + let quickStartPromptViewController = transitionContext.viewController(forKey: .to) as? QuickStartPromptViewController, + let selectedCell = loginEpilogueViewController.tableViewController?.selectedCell else { + return + } + + let containerView = transitionContext.containerView + containerView.backgroundColor = loginEpilogueViewController.view.backgroundColor + + let cellSnapshot = selectedCell.contentView.snapshotView(afterScreenUpdates: false) + let cellSnapshotFrame = containerView.convert(selectedCell.contentView.frame, from: selectedCell) + cellSnapshot?.frame = cellSnapshotFrame + selectedCell.contentView.alpha = Constants.hiddenAlpha + + let loginContainer = UIView(frame: loginEpilogueViewController.view.frame) + let loginSnapshot = loginEpilogueViewController.view.snapshotView(afterScreenUpdates: true) + loginContainer.backgroundColor = loginEpilogueViewController.view.backgroundColor + + if let loginSnapshot = loginSnapshot { + loginSnapshot.layer.anchorPoint = CGPoint(x: 0.5, y: cellSnapshotFrame.origin.y / loginContainer.bounds.height) + loginSnapshot.frame = loginContainer.frame + loginContainer.addSubview(loginSnapshot) + containerView.addSubview(loginContainer) + } + + if let cellSnapshot = cellSnapshot { + containerView.addSubview(cellSnapshot) + } + + quickStartPromptViewController.view.alpha = Constants.hiddenAlpha + let safeAreaTop = loginEpilogueViewController.view.safeAreaInsets.top + quickStartPromptViewController.scrollViewTopVerticalConstraint.constant = cellSnapshotFrame.origin.y - safeAreaTop + quickStartPromptViewController.promptTitleLabel.alpha = Constants.quickStartPromptStartAlpha + quickStartPromptViewController.promptDescriptionLabel.alpha = Constants.quickStartPromptStartAlpha + quickStartPromptViewController.showMeAroundButton.alpha = Constants.hiddenAlpha + quickStartPromptViewController.noThanksButton.alpha = Constants.hiddenAlpha + quickStartPromptViewController.view.layoutIfNeeded() + containerView.addSubview(quickStartPromptViewController.view) + + let quickStartAnimator = UIViewPropertyAnimator(duration: Constants.quickStartAnimationDuration, curve: .easeInOut) { + quickStartPromptViewController.promptTitleLabel.alpha = Constants.visibleAlpha + quickStartPromptViewController.promptDescriptionLabel.alpha = Constants.visibleAlpha + quickStartPromptViewController.showMeAroundButton.alpha = Constants.visibleAlpha + quickStartPromptViewController.noThanksButton.alpha = Constants.visibleAlpha + quickStartPromptViewController.scrollViewTopVerticalConstraint.constant = Constants.quickStartTopEndConstraint + quickStartPromptViewController.view.layoutIfNeeded() + } + + quickStartAnimator.addCompletion { position in + cellSnapshot?.alpha = Constants.hiddenAlpha + selectedCell.contentView.alpha = Constants.visibleAlpha + transitionContext.completeTransition(position == .end) + } + + let loginAnimator = UIViewPropertyAnimator(duration: Constants.loginAnimationDuration, curve: .easeOut) { + loginSnapshot?.alpha = Constants.hiddenAlpha + loginSnapshot?.transform = CGAffineTransform(scaleX: Constants.loginAnimationScaleX, y: Constants.loginAnimationScaleY) + } + + loginAnimator.addCompletion { _ in + quickStartPromptViewController.view.alpha = Constants.visibleAlpha + quickStartAnimator.startAnimation() + } + + loginAnimator.startAnimation() + } + +} diff --git a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift index 57d00e18db52..b9d264de53e2 100644 --- a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift +++ b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift @@ -7,6 +7,10 @@ import WordPressAuthenticator // class LoginEpilogueTableViewController: UITableViewController { + /// Currently selected cell + /// + private(set) weak var selectedCell: LoginEpilogueBlogCell? + /// TableView's Datasource /// private let blogDataSource = BlogListDataSource() @@ -185,13 +189,14 @@ extension LoginEpilogueTableViewController { override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { guard let parent = parent as? LoginEpilogueViewController, - tableView.cellForRow(at: indexPath) is LoginEpilogueBlogCell else { + let cell = tableView.cellForRow(at: indexPath) as? LoginEpilogueBlogCell else { return } let wrappedPath = IndexPath(row: indexPath.row, section: indexPath.section - 1) let blog = blogDataSource.blog(at: wrappedPath) + selectedCell = cell parent.blogSelected(blog) } diff --git a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueViewController.swift b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueViewController.swift index 4d674935580d..17dbbfa096ac 100644 --- a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueViewController.swift +++ b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueViewController.swift @@ -39,7 +39,7 @@ class LoginEpilogueViewController: UIViewController { /// Links to the Epilogue TableViewController /// - private var tableViewController: LoginEpilogueTableViewController? + private(set) var tableViewController: LoginEpilogueTableViewController? /// Analytics Tracker /// @@ -219,3 +219,17 @@ private extension LoginEpilogueViewController { createNewSite() } } + +// MARK: - UINavigationControllerDelegate + +extension LoginEpilogueViewController: UINavigationControllerDelegate { + + func navigationController(_ navigationController: UINavigationController, animationControllerFor operation: UINavigationController.Operation, from fromVC: UIViewController, to toVC: UIViewController) -> UIViewControllerAnimatedTransitioning? { + guard operation == .push, fromVC is LoginEpilogueViewController, toVC is QuickStartPromptViewController else { + return nil + } + + return LoginEpilogueAnimator() + } + +} diff --git a/WordPress/Classes/ViewRelated/NUX/WordPressAuthenticationManager.swift b/WordPress/Classes/ViewRelated/NUX/WordPressAuthenticationManager.swift index a0797323259a..ae1ea611efb4 100644 --- a/WordPress/Classes/ViewRelated/NUX/WordPressAuthenticationManager.swift +++ b/WordPress/Classes/ViewRelated/NUX/WordPressAuthenticationManager.swift @@ -388,6 +388,7 @@ extension WordPressAuthenticationManager: WordPressAuthenticatorDelegate { WPAnalytics.track(.enhancedSiteCreationAccessed, withProperties: ["source": "login_epilogue"]) } + navigationController.delegate = epilogueViewController navigationController.pushViewController(epilogueViewController, animated: true) } diff --git a/WordPress/WordPress.xcodeproj/project.pbxproj b/WordPress/WordPress.xcodeproj/project.pbxproj index b29bbe76a04d..f39fc248a0f0 100644 --- a/WordPress/WordPress.xcodeproj/project.pbxproj +++ b/WordPress/WordPress.xcodeproj/project.pbxproj @@ -1356,6 +1356,8 @@ 82FC612C1FA8B7FC00A1757E /* ActivityListRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82FC612B1FA8B7FC00A1757E /* ActivityListRow.swift */; }; 82FFBF4D1F434BDA00F4573F /* ThemeIdHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82FFBF4C1F434BDA00F4573F /* ThemeIdHelper.swift */; }; 83043E55126FA31400EC9953 /* MessageUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 83043E54126FA31400EC9953 /* MessageUI.framework */; }; + 830A58D82793AB4500CDE94F /* LoginEpilogueAnimator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 830A58D72793AB4400CDE94F /* LoginEpilogueAnimator.swift */; }; + 830A58D92793AB4500CDE94F /* LoginEpilogueAnimator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 830A58D72793AB4400CDE94F /* LoginEpilogueAnimator.swift */; }; 834CE7341256D0DE0046A4A3 /* CFNetwork.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 834CE7331256D0DE0046A4A3 /* CFNetwork.framework */; }; 8350E49611D2C71E00A7B073 /* Media.m in Sources */ = {isa = PBXBuildFile; fileRef = 8350E49511D2C71E00A7B073 /* Media.m */; }; 8355D7D911D260AA00A61362 /* CoreData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8355D7D811D260AA00A61362 /* CoreData.framework */; }; @@ -5967,6 +5969,7 @@ 82FFBF4C1F434BDA00F4573F /* ThemeIdHelper.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ThemeIdHelper.swift; sourceTree = ""; }; 82FFBF4E1F45E03D00F4573F /* WordPress 66.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = "WordPress 66.xcdatamodel"; sourceTree = ""; }; 83043E54126FA31400EC9953 /* MessageUI.framework */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = wrapper.framework; name = MessageUI.framework; path = System/Library/Frameworks/MessageUI.framework; sourceTree = SDKROOT; }; + 830A58D72793AB4400CDE94F /* LoginEpilogueAnimator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoginEpilogueAnimator.swift; sourceTree = ""; }; 833AF259114575A50016DE8F /* PostAnnotation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PostAnnotation.h; sourceTree = ""; }; 833AF25A114575A50016DE8F /* PostAnnotation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PostAnnotation.m; sourceTree = ""; }; 834CE7331256D0DE0046A4A3 /* CFNetwork.framework */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = wrapper.framework; name = CFNetwork.framework; path = System/Library/Frameworks/CFNetwork.framework; sourceTree = SDKROOT; }; @@ -8508,7 +8511,7 @@ path = Classes; sourceTree = ""; }; - 29B97314FDCFA39411CA2CEA = { + 29B97314FDCFA39411CA2CEA /* CustomTemplate */ = { isa = PBXGroup; children = ( 3F20FDF3276BF21000DA3CAD /* Packages */, @@ -13991,6 +13994,7 @@ isa = PBXGroup; children = ( B560914B208A671E00399AE4 /* WPStyleGuide+SiteCreation.swift */, + 830A58D72793AB4400CDE94F /* LoginEpilogueAnimator.swift */, E6158AC91ECDF518005FA441 /* LoginEpilogueUserInfo.swift */, B5E51B7A203477DF00151ECD /* WordPressAuthenticationManager.swift */, B5326E6E203F554C007392C3 /* WordPressSupportSourceTag+Helpers.swift */, @@ -15299,7 +15303,7 @@ bg, sk, ); - mainGroup = 29B97314FDCFA39411CA2CEA; + mainGroup = 29B97314FDCFA39411CA2CEA /* CustomTemplate */; packageReferences = ( 3FF1442E266F3C2400138163 /* XCRemoteSwiftPackageReference "ScreenObject" */, 3FC2C33B26C4CF0A00C6D98F /* XCRemoteSwiftPackageReference "XCUITestHelpers" */, @@ -17234,6 +17238,7 @@ D816C1EE20E0892200C4D82F /* Follow.swift in Sources */, 3F3DD0B226FD176800F5F121 /* PresentationCard.swift in Sources */, 822D60B91F4CCC7A0016C46D /* BlogJetpackSettingsService.swift in Sources */, + 830A58D82793AB4500CDE94F /* LoginEpilogueAnimator.swift in Sources */, 08216FD51CDBF96000304BA7 /* MenuItemTypeViewController.m in Sources */, B526DC291B1E47FC002A8C5F /* WPStyleGuide+WebView.m in Sources */, 3F6DA04125646F96002AB88F /* HomeWidgetData.swift in Sources */, @@ -20194,6 +20199,7 @@ FABB24232602FC2C00C8785C /* JetpackRestoreService.swift in Sources */, FABB24242602FC2C00C8785C /* DateAndTimeFormatSettingsViewController.swift in Sources */, FABB24252602FC2C00C8785C /* WPContentSyncHelper.swift in Sources */, + 830A58D92793AB4500CDE94F /* LoginEpilogueAnimator.swift in Sources */, FABB24262602FC2C00C8785C /* SiteAssemblyStep.swift in Sources */, FABB24272602FC2C00C8785C /* SiteSettingsViewController+Swift.swift in Sources */, FABB24282602FC2C00C8785C /* FilterTableData.swift in Sources */, From 873f4656262f682ec6a1ab2ebb91bfc8627bd1dc Mon Sep 17 00:00:00 2001 From: wargcm <2454408+wargcm@users.noreply.github.com> Date: Mon, 17 Jan 2022 15:46:21 -0500 Subject: [PATCH 025/114] Refactor login and signup iPad horizontal margins There was some code duplication with calculating the margins for a view on the iPad. This pulls that code out into an extension on `UIView`. Additionally, updates `QuickStartPromptViewController` to use these margins so that the new transition animations line up correctly. --- .../Blog/QuickStartPromptViewController.swift | 14 +++++++++ .../Blog/QuickStartPromptViewController.xib | 8 +++-- .../NUX/LoginEpilogueViewController.swift | 30 ++++-------------- .../NUX/SignupEpilogueViewController.swift | 31 ++++--------------- .../ViewRelated/NUX/UIView+Margins.swift | 24 ++++++++++++++ WordPress/WordPress.xcodeproj/project.pbxproj | 6 ++++ 6 files changed, 61 insertions(+), 52 deletions(-) create mode 100644 WordPress/Classes/ViewRelated/NUX/UIView+Margins.swift diff --git a/WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.swift b/WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.swift index e39d573dd154..9147a93b05c9 100644 --- a/WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.swift +++ b/WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.swift @@ -19,6 +19,8 @@ final class QuickStartPromptViewController: UIViewController { /// Constraints @IBOutlet private(set) weak var scrollViewTopVerticalConstraint: NSLayoutConstraint! + @IBOutlet weak var scrollViewLeadingConstraint: NSLayoutConstraint! + @IBOutlet weak var scrollViewTrailingConstraint: NSLayoutConstraint! // MARK: - Properties @@ -57,6 +59,11 @@ final class QuickStartPromptViewController: UIViewController { UIAccessibility.post(notification: .layoutChanged, argument: promptTitleLabel) } + override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) { + super.traitCollectionDidChange(previousTraitCollection) + setupScrollViewMargins() + } + // MARK: - Styling private func applyStyles() { @@ -91,11 +98,18 @@ final class QuickStartPromptViewController: UIViewController { // MARK: - Setup private func setup() { + setupScrollViewMargins() setupSiteInfoViews() setupPromptInfoViews() setupButtons() } + private func setupScrollViewMargins() { + let margin = view.getHorizontalMargin() + 20.0 + scrollViewLeadingConstraint.constant = margin + scrollViewTrailingConstraint.constant = margin + } + private func setupSiteInfoViews() { siteIconView.downloadSiteIcon(for: blog) diff --git a/WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.xib b/WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.xib index d0928d2bfcc1..1d964e4a8d3d 100644 --- a/WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.xib +++ b/WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.xib @@ -14,7 +14,9 @@ + + @@ -120,10 +122,10 @@ - - + - + + diff --git a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueViewController.swift b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueViewController.swift index 17dbbfa096ac..29d9a5deb4ba 100644 --- a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueViewController.swift +++ b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueViewController.swift @@ -78,7 +78,7 @@ class LoginEpilogueViewController: UIViewController { view.backgroundColor = .basicBackground topLine.backgroundColor = .divider defaultTableViewMargin = tableViewLeadingConstraint.constant - setTableViewMargins(forWidth: view.frame.width) + setTableViewMargins() refreshInterface(with: credentials) WordPressAuthenticator.track(.loginEpilogueViewed) @@ -117,12 +117,12 @@ class LoginEpilogueViewController: UIViewController { override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) { super.viewWillTransition(to: size, with: coordinator) - setTableViewMargins(forWidth: size.width) + setTableViewMargins() } override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) { super.traitCollectionDidChange(previousTraitCollection) - setTableViewMargins(forWidth: view.frame.width) + setTableViewMargins() } func hideButtonPanel() { @@ -172,22 +172,9 @@ private extension LoginEpilogueViewController { setupDividerLineIfNeeded() } - func setTableViewMargins(forWidth viewWidth: CGFloat) { - guard traitCollection.horizontalSizeClass == .regular && - traitCollection.verticalSizeClass == .regular else { - tableViewLeadingConstraint.constant = defaultTableViewMargin - tableViewTrailingConstraint.constant = defaultTableViewMargin - return - } - - let marginMultiplier = UIDevice.current.orientation.isLandscape ? - TableViewMarginMultipliers.ipadLandscape : - TableViewMarginMultipliers.ipadPortrait - - let margin = viewWidth * marginMultiplier - - tableViewLeadingConstraint.constant = margin - tableViewTrailingConstraint.constant = margin + func setTableViewMargins() { + tableViewLeadingConstraint.constant = view.getHorizontalMargin(compactMargin: defaultTableViewMargin) + tableViewTrailingConstraint.constant = view.getHorizontalMargin(compactMargin: defaultTableViewMargin) } func setupDividerLineIfNeeded() { @@ -204,11 +191,6 @@ private extension LoginEpilogueViewController { ]) } - enum TableViewMarginMultipliers { - static let ipadPortrait: CGFloat = 0.1667 - static let ipadLandscape: CGFloat = 0.25 - } - private enum Constants { static let dividerViewHeight: CGFloat = 40.0 } diff --git a/WordPress/Classes/ViewRelated/NUX/SignupEpilogueViewController.swift b/WordPress/Classes/ViewRelated/NUX/SignupEpilogueViewController.swift index bf81aa655dd4..ea1a9c5b4a20 100644 --- a/WordPress/Classes/ViewRelated/NUX/SignupEpilogueViewController.swift +++ b/WordPress/Classes/ViewRelated/NUX/SignupEpilogueViewController.swift @@ -42,7 +42,7 @@ class SignupEpilogueViewController: UIViewController { view.backgroundColor = .basicBackground defaultTableViewMargin = tableViewLeadingConstraint.constant configureDoneButton() - setTableViewMargins(forWidth: view.frame.width) + setTableViewMargins() WordPressAuthenticator.track(.signupEpilogueViewed, properties: tracksProperties()) } @@ -54,12 +54,12 @@ class SignupEpilogueViewController: UIViewController { override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) { super.viewWillTransition(to: size, with: coordinator) - setTableViewMargins(forWidth: size.width) + setTableViewMargins() } override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) { super.traitCollectionDidChange(previousTraitCollection) - setTableViewMargins(forWidth: view.frame.width) + setTableViewMargins() } override var supportedInterfaceOrientations: UIInterfaceOrientationMask { @@ -142,23 +142,9 @@ private extension SignupEpilogueViewController { doneButton.accessibilityIdentifier = ButtonTitle.accessibilityId } - func setTableViewMargins(forWidth viewWidth: CGFloat) { - - guard traitCollection.horizontalSizeClass == .regular && - traitCollection.verticalSizeClass == .regular else { - tableViewLeadingConstraint.constant = defaultTableViewMargin - tableViewTrailingConstraint.constant = defaultTableViewMargin - return - } - - let marginMultiplier = UIDevice.current.orientation.isLandscape ? - TableViewMarginMultipliers.ipadLandscape : - TableViewMarginMultipliers.ipadPortrait - - let margin = viewWidth * marginMultiplier - - tableViewLeadingConstraint.constant = margin - tableViewTrailingConstraint.constant = margin + func setTableViewMargins() { + tableViewLeadingConstraint.constant = view.getHorizontalMargin(compactMargin: defaultTableViewMargin) + tableViewTrailingConstraint.constant = view.getHorizontalMargin(compactMargin: defaultTableViewMargin) } @IBAction func doneButtonPressed() { @@ -317,11 +303,6 @@ private extension SignupEpilogueViewController { return ["source": source] } - enum TableViewMarginMultipliers { - static let ipadPortrait: CGFloat = 0.1667 - static let ipadLandscape: CGFloat = 0.25 - } - enum ButtonTitle { static let title = NSLocalizedString("Done", comment: "Button text on site creation epilogue page to proceed to My Sites.") // TODO: change UI Test when change this diff --git a/WordPress/Classes/ViewRelated/NUX/UIView+Margins.swift b/WordPress/Classes/ViewRelated/NUX/UIView+Margins.swift new file mode 100644 index 000000000000..73f7c8f2d879 --- /dev/null +++ b/WordPress/Classes/ViewRelated/NUX/UIView+Margins.swift @@ -0,0 +1,24 @@ +import UIKit + +extension UIView { + + func getHorizontalMargin(compactMargin: CGFloat = 0.0) -> CGFloat { + guard traitCollection.verticalSizeClass == .regular, + traitCollection.horizontalSizeClass == .regular else { + return compactMargin + } + + let isLandscape = UIDevice.current.orientation.isLandscape + let multiplier: CGFloat = isLandscape ? .ipadLandscape : .ipadPortrait + + return frame.width * multiplier + } + +} + +private extension CGFloat { + + static let ipadPortrait: CGFloat = 0.1667 + static let ipadLandscape: CGFloat = 0.25 + +} diff --git a/WordPress/WordPress.xcodeproj/project.pbxproj b/WordPress/WordPress.xcodeproj/project.pbxproj index f39fc248a0f0..696e1b97c6d2 100644 --- a/WordPress/WordPress.xcodeproj/project.pbxproj +++ b/WordPress/WordPress.xcodeproj/project.pbxproj @@ -1362,6 +1362,8 @@ 8350E49611D2C71E00A7B073 /* Media.m in Sources */ = {isa = PBXBuildFile; fileRef = 8350E49511D2C71E00A7B073 /* Media.m */; }; 8355D7D911D260AA00A61362 /* CoreData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8355D7D811D260AA00A61362 /* CoreData.framework */; }; 8370D10A11FA499A009D650F /* WPTableViewActivityCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8370D10911FA499A009D650F /* WPTableViewActivityCell.m */; }; + 839B150B2795DEE0009F5E77 /* UIView+Margins.swift in Sources */ = {isa = PBXBuildFile; fileRef = 839B150A2795DEE0009F5E77 /* UIView+Margins.swift */; }; + 839B150C2795DEE0009F5E77 /* UIView+Margins.swift in Sources */ = {isa = PBXBuildFile; fileRef = 839B150A2795DEE0009F5E77 /* UIView+Margins.swift */; }; 83F3E26011275E07004CD686 /* MapKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 83F3E25F11275E07004CD686 /* MapKit.framework */; }; 83F3E2D311276371004CD686 /* CoreLocation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 83F3E2D211276371004CD686 /* CoreLocation.framework */; }; 83FEFC7611FF6C5A0078B462 /* SiteSettingsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 83FEFC7411FF6C5A0078B462 /* SiteSettingsViewController.m */; }; @@ -5982,6 +5984,7 @@ 835E2402126E66E50085940B /* AssetsLibrary.framework */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = wrapper.framework; name = AssetsLibrary.framework; path = System/Library/Frameworks/AssetsLibrary.framework; sourceTree = SDKROOT; }; 8370D10811FA499A009D650F /* WPTableViewActivityCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WPTableViewActivityCell.h; sourceTree = ""; }; 8370D10911FA499A009D650F /* WPTableViewActivityCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WPTableViewActivityCell.m; sourceTree = ""; }; + 839B150A2795DEE0009F5E77 /* UIView+Margins.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIView+Margins.swift"; sourceTree = ""; }; 83F3E25F11275E07004CD686 /* MapKit.framework */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = wrapper.framework; name = MapKit.framework; path = System/Library/Frameworks/MapKit.framework; sourceTree = SDKROOT; }; 83F3E2D211276371004CD686 /* CoreLocation.framework */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = wrapper.framework; name = CoreLocation.framework; path = System/Library/Frameworks/CoreLocation.framework; sourceTree = SDKROOT; }; 83FB4D3E122C38F700DB9506 /* MediaPlayer.framework */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = wrapper.framework; name = MediaPlayer.framework; path = System/Library/Frameworks/MediaPlayer.framework; sourceTree = SDKROOT; }; @@ -13998,6 +14001,7 @@ E6158AC91ECDF518005FA441 /* LoginEpilogueUserInfo.swift */, B5E51B7A203477DF00151ECD /* WordPressAuthenticationManager.swift */, B5326E6E203F554C007392C3 /* WordPressSupportSourceTag+Helpers.swift */, + 839B150A2795DEE0009F5E77 /* UIView+Margins.swift */, ); name = Helpers; sourceTree = ""; @@ -17131,6 +17135,7 @@ 9A2B28EE2191B50500458F2A /* RevisionsTableViewFooter.swift in Sources */, F5A34BCB25DF244F00C9654B /* KanvasCameraAnalyticsHandler.swift in Sources */, 8BD36E022395CAEA00EFFF1C /* MediaEditorOperation+Description.swift in Sources */, + 839B150B2795DEE0009F5E77 /* UIView+Margins.swift in Sources */, 17F52DB72315233300164966 /* WPStyleGuide+FilterTabBar.swift in Sources */, E1DD4CCB1CAE41B800C3863E /* PagedViewController.swift in Sources */, B549BA681CF7447E0086C608 /* InvitePersonViewController.swift in Sources */, @@ -20259,6 +20264,7 @@ FABB24572602FC2C00C8785C /* CheckmarkTableViewCell.swift in Sources */, FABB24582602FC2C00C8785C /* ReaderManageScenePresenter.swift in Sources */, FABB24592602FC2C00C8785C /* MediaService.swift in Sources */, + 839B150C2795DEE0009F5E77 /* UIView+Margins.swift in Sources */, FABB245A2602FC2C00C8785C /* TopViewedPostStatsRecordValue+CoreDataClass.swift in Sources */, FABB245B2602FC2C00C8785C /* PostMetaButton.m in Sources */, FABB245C2602FC2C00C8785C /* PluginStore+Persistence.swift in Sources */, From 5342176530c5c60352ea6e19236308b4486f6de9 Mon Sep 17 00:00:00 2001 From: alpavanoglu Date: Wed, 19 Jan 2022 17:08:24 +0100 Subject: [PATCH 026/114] Add private access modifiers for UIBarButtonItem --- .../Controllers/NotificationsViewController.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationsViewController.swift b/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationsViewController.swift index 7ce56b69d5c5..01acffb491eb 100644 --- a/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationsViewController.swift +++ b/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationsViewController.swift @@ -92,7 +92,7 @@ class NotificationsViewController: UITableViewController, UIViewControllerRestor }() /// Notification Settings button - lazy var settingsBarButtonItem: UIBarButtonItem = { + private lazy var settingsBarButtonItem: UIBarButtonItem = { let settingsButton = UIBarButtonItem( image: .gridicon(.cog), style: .plain, @@ -107,7 +107,7 @@ class NotificationsViewController: UITableViewController, UIViewControllerRestor }() /// Mark All As Read button - lazy var markAllAsReadBarButtonItem: UIBarButtonItem = { + private lazy var markAllAsReadBarButtonItem: UIBarButtonItem = { let markButton = UIBarButtonItem( image: .gridicon(.checkmark), style: .plain, From 06530c63b457cf52fc004a295ac9ec82aca6f326 Mon Sep 17 00:00:00 2001 From: alpavanoglu Date: Wed, 19 Jan 2022 22:27:56 +0100 Subject: [PATCH 027/114] Update Podfile to target WPKit support branch --- Podfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Podfile b/Podfile index ba984bc8c89d..33d5695963f5 100644 --- a/Podfile +++ b/Podfile @@ -47,9 +47,9 @@ def wordpress_ui end def wordpress_kit - pod 'WordPressKit', '~> 4.46.0-beta.1' + # pod 'WordPressKit', '~> 4.46.0-beta.1' # pod 'WordPressKit', :git => 'https://github.com/wordpress-mobile/WordPressKit-iOS.git', :tag => '' - # pod 'WordPressKit', :git => 'https://github.com/wordpress-mobile/WordPressKit-iOS.git', :branch => '' + pod 'WordPressKit', :git => 'https://github.com/wordpress-mobile/WordPressKit-iOS.git', :branch => 'feature/17135-notifications_mark_all_read_support' # pod 'WordPressKit', :git => 'https://github.com/wordpress-mobile/WordPressKit-iOS.git', :commit => '' # pod 'WordPressKit', :path => '../WordPressKit-iOS' end From e9592746f9439189f468a8a5208e7028c9e35e62 Mon Sep 17 00:00:00 2001 From: alpavanoglu Date: Wed, 19 Jan 2022 22:28:20 +0100 Subject: [PATCH 028/114] Add `mark:notifications` overload function --- .../Services/NotificationSyncMediator.swift | 89 ++++++++++++++++++- .../NotificationSyncMediatorTests.swift | 75 ++++++++++++++++ 2 files changed, 160 insertions(+), 4 deletions(-) diff --git a/WordPress/Classes/Services/NotificationSyncMediator.swift b/WordPress/Classes/Services/NotificationSyncMediator.swift index 55c7f7468bf9..c428c5aeb0b1 100644 --- a/WordPress/Classes/Services/NotificationSyncMediator.swift +++ b/WordPress/Classes/Services/NotificationSyncMediator.swift @@ -162,6 +162,19 @@ class NotificationSyncMediator { mark(notification, asRead: true, completion: completion) } + /// Marks an array of notifications as Read. + /// + /// - Note: This method should only be used on the main thread. + /// + /// - Parameters: + /// - notifications: The notification that was just read. + /// - completion: Callback to be executed on completion. + /// + func markAsRead(_ notifications: [Notification], completion: ((Error?)-> Void)? = nil) { + mark(notifications, asRead: true, completion: completion) + } + + /// Marks a Notification as Unead. /// /// - Note: This method should only be used on the main thread. @@ -180,8 +193,7 @@ class NotificationSyncMediator { let noteID = notification.notificationId remote.updateReadStatus(noteID, read: read) { error in if let error = error { - let readState = read ? "read" : "unread" - DDLogError("Error marking note as \(readState): \(error)") + DDLogError("Error marking note as \(Self.readState(for: read)): \(error)") // Ideally, we'd want to revert to the previous status if this // fails, but if the note is visible, the UI layer will keep // trying to mark this note and fail. @@ -200,6 +212,37 @@ class NotificationSyncMediator { updateReadStatus(read, forNoteWithObjectID: notification.objectID) } + private func mark(_ notifications: [Notification], asRead read: Bool = true, completion: ((Error?)-> Void)? = nil) { + assert(Thread.isMainThread) + + let noteIDs = notifications.map { + $0.notificationId + } + + remote.updateReadStatusForNotifications(noteIDs, read: read) { error in + if let error = error { + DDLogError("Error marking notifications as \(Self.readState(for: read)): \(error)") + + NotificationSyncMediator()?.invalidateCacheForNotifications(with: noteIDs) + } + + completion?(error) + } + + let objectIDs = notifications.map { + $0.objectID + } + + updateReadStatus( + read, + forNotesWithObjectIDs: objectIDs + ) + } + + private static func readState(for read: Bool) -> String { + read ? "read" : "unread" + } + /// Invalidates the cache for a notification, marks it as read and syncs it. /// /// - Parameters: @@ -270,6 +313,26 @@ class NotificationSyncMediator { self.contextManager.save(derivedContext) } } + + /// Invalidates the local cache for all the notifications with specified ID's in the array.. + /// + func invalidateCacheForNotifications(with noteIDs: [String]) { + let derivedContext = type(of: self).sharedDerivedContext(with: contextManager) + + derivedContext.perform { + for noteID in noteIDs { + // TODO Fix predicate + let predicate = NSPredicate(format: "(notificationId == %@)", noteID) + guard let notification = derivedContext.firstObject(ofType: Notification.self, matching: predicate) else { + return + } + + notification.notificationHash = nil + } + + self.contextManager.save(derivedContext) + } + } } @@ -373,8 +436,26 @@ private extension NotificationSyncMediator { /// - noteObjectID: CoreData ObjectID /// func updateReadStatus(_ status: Bool, forNoteWithObjectID noteObjectID: NSManagedObjectID) { - let note = mainContext.loadObject(ofType: Notification.self, with: noteObjectID) - note?.read = status + updateReadStatus(status, forNotesWithObjectIDs: [noteObjectID]) + } + + /// Updates the Read status, of an array of Notifications, as specified. + /// + /// Note: This method uses *saveContextAndWait* in order to prevent animation glitches when pushing + /// Notification Details. + /// + /// - Parameters: + /// - status: New *read* value + /// - notesObjectIDs: CoreData ObjectIDs + /// + func updateReadStatus(_ status: Bool, forNotesWithObjectIDs notesObjectIDs: [NSManagedObjectID]) { + let predicate = NSPredicate(format: "SELF IN %@", notesObjectIDs) + + let notes = mainContext.allObjects(ofType: Notification.self, matching: predicate) + + for note in notes { + note.read = status + } contextManager.saveContextAndWait(mainContext) } diff --git a/WordPress/WordPressTest/NotificationSyncMediatorTests.swift b/WordPress/WordPressTest/NotificationSyncMediatorTests.swift index 543154335b2a..941d648ce65a 100644 --- a/WordPress/WordPressTest/NotificationSyncMediatorTests.swift +++ b/WordPress/WordPressTest/NotificationSyncMediatorTests.swift @@ -175,6 +175,81 @@ class NotificationSyncMediatorTests: XCTestCase { waitForExpectations(timeout: timeout, handler: nil) } + /// Verifies that Mark Notifications as Read effectively toggles a Notifications' read flag + /// + func testMarkNotificationsAsReadEffectivelyTogglesNotificationsReadStatus() { + // Stub Endpoint + let endpoint = "notifications/read" + let stubPath = OHPathForFile("notifications-mark-as-read.json", type(of: self))! + HTTPStubs.stubRequest(forEndpoint: endpoint, withFileAtPath: stubPath) + + // Inject Dummy Note + let path1 = "notifications-like.json" + let path2 = "notifications-new-follower.json" + let path3 = "notifications-unapproved-comment.json" + let note1 = manager.loadEntityNamed(Notification.entityName(), withContentsOfFile: path1) as! WordPress.Notification + let note2 = manager.loadEntityNamed(Notification.entityName(), withContentsOfFile: path2) as! WordPress.Notification + let note3 = manager.loadEntityNamed(Notification.entityName(), withContentsOfFile: path3) as! WordPress.Notification + + XCTAssertFalse(note1.read) + XCTAssertFalse(note3.read) + + XCTAssertTrue(note2.read) + + // CoreData Expectations + manager.testExpectation = expectation(description: "Context save expectation") + + // Mediator Expectations + let expect = expectation(description: "Mark as Read") + + // Mark as Read! + mediator.markAsRead([note1, note3]) { success in + XCTAssertTrue(note1.read) + XCTAssertTrue(note2.read) + XCTAssertTrue(note3.read) + expect.fulfill() + } + + waitForExpectations(timeout: timeout, handler: nil) + } + + /// Verifies that Mark Notifications as Read modifies only the specified notifications' read status + /// + func testMarkNotificationsAsReadTogglesOnlyTheReadStatusOfPassedInNotifications() { + // Stub Endpoint + let endpoint = "notifications/read" + let stubPath = OHPathForFile("notifications-mark-as-read.json", type(of: self))! + HTTPStubs.stubRequest(forEndpoint: endpoint, withFileAtPath: stubPath) + + // Inject Dummy Note + let path1 = "notifications-like.json" + let path2 = "notifications-new-follower.json" + let path3 = "notifications-unapproved-comment.json" + let note1 = manager.loadEntityNamed(Notification.entityName(), withContentsOfFile: path1) as! WordPress.Notification + let note2 = manager.loadEntityNamed(Notification.entityName(), withContentsOfFile: path2) as! WordPress.Notification + let note3 = manager.loadEntityNamed(Notification.entityName(), withContentsOfFile: path3) as! WordPress.Notification + + XCTAssertFalse(note1.read) + XCTAssertFalse(note3.read) + + XCTAssertTrue(note2.read) + + // CoreData Expectations + manager.testExpectation = expectation(description: "Context save expectation") + + // Mediator Expectations + let expect = expectation(description: "Mark as Read") + + // Mark as Read! + mediator.markAsRead([note1]) { success in + XCTAssertTrue(note1.read) + XCTAssertFalse(note3.read) + expect.fulfill() + } + + waitForExpectations(timeout: timeout, handler: nil) + } + /// Verifies that updateLastSeen method effectively calls the callback with successfull flag /// From eaaa71089d854d215cd20b35e18e026943955903 Mon Sep 17 00:00:00 2001 From: alpavanoglu Date: Wed, 19 Jan 2022 22:29:04 +0100 Subject: [PATCH 029/114] Add functionality to mark all as read button on `NotificationsViewController` --- .../NotificationsViewController.swift | 39 ++++++++++++++++--- 1 file changed, 33 insertions(+), 6 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationsViewController.swift b/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationsViewController.swift index 01acffb491eb..2b412a2e5f5e 100644 --- a/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationsViewController.swift +++ b/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationsViewController.swift @@ -175,6 +175,7 @@ class NotificationsViewController: UITableViewController, UIViewControllerRestor // Refresh the UI reloadResultsControllerIfNeeded() + updateMarkAllAsReadTintColor() if !splitViewControllerIsHorizontallyCompact { reloadTableViewPreservingSelection() @@ -794,12 +795,6 @@ extension NotificationsViewController { present(navigationController, animated: true, completion: nil) } - - /// Marks all messages as read under the selected filter. - /// - @objc func markAllAsRead() { - // TODO - } } @@ -862,12 +857,30 @@ private extension NotificationsViewController { NotificationSyncMediator()?.markAsRead(note) } + /// Marks all messages as read under the selected filter. + /// + @objc func markAllAsRead() { + guard let notes = tableViewHandler.resultsController.fetchedObjects as? [Notification] else { + return + } + + let unreadNotifications = notes.filter { + !$0.read + } + + NotificationSyncMediator()?.markAsRead(unreadNotifications) + let notice = Notice(title: "Some title", message: "Mark all as read successful") + ActionDispatcherFacade().dispatch(NoticeAction.post(notice)) + updateMarkAllAsReadTintColor() + } + func markAsUnread(note: Notification) { guard note.read else { return } NotificationSyncMediator()?.markAsUnread(note) + updateMarkAllAsReadTintColor() } func markWelcomeNotificationAsSeenIfNeeded() { @@ -877,6 +890,19 @@ private extension NotificationsViewController { resetApplicationBadge() } } + + func updateMarkAllAsReadTintColor() { + guard let notes = tableViewHandler.resultsController.fetchedObjects as? [Notification] else { + return + } + + let isEnabled = !notes.filter { + !$0.read + }.isEmpty + + markAllAsReadBarButtonItem.tintColor = isEnabled ? .primary : .textTertiary + markAllAsReadBarButtonItem.isEnabled = isEnabled + } } @@ -949,6 +975,7 @@ private extension NotificationsViewController { // Don't overwork! lastReloadDate = Date() needsReloadResults = false + updateMarkAllAsReadTintColor() } func reloadRowForNotificationWithID(_ noteObjectID: NSManagedObjectID) { From 93f502024a1fa9131f1b400b7c1cef68a7112803 Mon Sep 17 00:00:00 2001 From: alpavanoglu Date: Wed, 19 Jan 2022 22:36:50 +0100 Subject: [PATCH 030/114] Add `Localization` enum and update strings --- .../NotificationsViewController.swift | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationsViewController.swift b/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationsViewController.swift index 2b412a2e5f5e..0b41422ddfc3 100644 --- a/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationsViewController.swift +++ b/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationsViewController.swift @@ -840,6 +840,17 @@ private extension NotificationsViewController { // MARK: - Marking as Read // private extension NotificationsViewController { + private enum Localization { + static let markAllAsReadNoticeTitle = NSLocalizedString( + "Success", + comment: "Title for mark all as read success notice." + ) + + static let markAllAsReadNoticeMessage = NSLocalizedString( + "Notifications marked as read.", + comment: "Message for mark all as read success notice." + ) + } func markSelectedNotificationAsRead() { guard let note = selectedNotification else { @@ -869,7 +880,10 @@ private extension NotificationsViewController { } NotificationSyncMediator()?.markAsRead(unreadNotifications) - let notice = Notice(title: "Some title", message: "Mark all as read successful") + let notice = Notice( + title: Localization.markAllAsReadNoticeTitle, + message: Localization.markAllAsReadNoticeMessage + ) ActionDispatcherFacade().dispatch(NoticeAction.post(notice)) updateMarkAllAsReadTintColor() } From 5172653e9c2091c837fa58fd79b8ed9e63085bef Mon Sep 17 00:00:00 2001 From: alpavanoglu Date: Wed, 19 Jan 2022 23:00:10 +0100 Subject: [PATCH 031/114] Improve predicate performance --- .../Classes/Services/NotificationSyncMediator.swift | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/WordPress/Classes/Services/NotificationSyncMediator.swift b/WordPress/Classes/Services/NotificationSyncMediator.swift index c428c5aeb0b1..2a292e2b097c 100644 --- a/WordPress/Classes/Services/NotificationSyncMediator.swift +++ b/WordPress/Classes/Services/NotificationSyncMediator.swift @@ -222,7 +222,6 @@ class NotificationSyncMediator { remote.updateReadStatusForNotifications(noteIDs, read: read) { error in if let error = error { DDLogError("Error marking notifications as \(Self.readState(for: read)): \(error)") - NotificationSyncMediator()?.invalidateCacheForNotifications(with: noteIDs) } @@ -314,19 +313,16 @@ class NotificationSyncMediator { } } - /// Invalidates the local cache for all the notifications with specified ID's in the array.. + /// Invalidates the local cache for all the notifications with specified ID's in the array. /// func invalidateCacheForNotifications(with noteIDs: [String]) { let derivedContext = type(of: self).sharedDerivedContext(with: contextManager) derivedContext.perform { - for noteID in noteIDs { - // TODO Fix predicate - let predicate = NSPredicate(format: "(notificationId == %@)", noteID) - guard let notification = derivedContext.firstObject(ofType: Notification.self, matching: predicate) else { - return - } + let predicate = NSPredicate(format: "(notificationId IN %@)", noteIDs) + let notifications = derivedContext.allObjects(ofType: Notification.self, matching: predicate) + for notification in notifications { notification.notificationHash = nil } From 286db097dfec3eeddf64f5c1c89b8bc64f772264 Mon Sep 17 00:00:00 2001 From: alpavanoglu Date: Thu, 20 Jan 2022 00:22:26 +0100 Subject: [PATCH 032/114] Update documentation for overload function --- WordPress/Classes/Services/NotificationSyncMediator.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WordPress/Classes/Services/NotificationSyncMediator.swift b/WordPress/Classes/Services/NotificationSyncMediator.swift index 2a292e2b097c..a58bf1c4c781 100644 --- a/WordPress/Classes/Services/NotificationSyncMediator.swift +++ b/WordPress/Classes/Services/NotificationSyncMediator.swift @@ -167,7 +167,7 @@ class NotificationSyncMediator { /// - Note: This method should only be used on the main thread. /// /// - Parameters: - /// - notifications: The notification that was just read. + /// - notifications: Notifications that were marked as read. /// - completion: Callback to be executed on completion. /// func markAsRead(_ notifications: [Notification], completion: ((Error?)-> Void)? = nil) { From eeb24d6f0f703ce8713029d45b68077868eb2795 Mon Sep 17 00:00:00 2001 From: alpavanoglu Date: Thu, 20 Jan 2022 01:28:00 +0100 Subject: [PATCH 033/114] Update `Podfile.lock` --- Podfile.lock | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/Podfile.lock b/Podfile.lock index 04a8f91b567e..75c7d8780014 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -465,7 +465,7 @@ PODS: - WordPressKit (~> 4.18-beta) - WordPressShared (~> 1.12-beta) - WordPressUI (~> 1.7-beta) - - WordPressKit (4.46.0-beta.1): + - WordPressKit (4.46.0-beta.2): - Alamofire (~> 4.8.0) - CocoaLumberjack (~> 3.4) - NSObject-SafeExpectations (= 0.0.4) @@ -569,7 +569,7 @@ DEPENDENCIES: - SVProgressHUD (= 2.2.5) - WordPress-Editor-iOS (~> 1.19.7) - WordPressAuthenticator (~> 1.43.0-beta.2) - - WordPressKit (~> 4.46.0-beta.1) + - WordPressKit (from `https://github.com/wordpress-mobile/WordPressKit-iOS.git`, branch `feature/17135-notifications_mark_all_read_support`) - WordPressMocks (~> 0.0.15) - WordPressShared (~> 1.17.0) - WordPressUI (~> 1.12.3) @@ -619,7 +619,6 @@ SPEC REPOS: - UIDeviceIdentifier - WordPress-Aztec-iOS - WordPress-Editor-iOS - - WordPressKit - WordPressMocks - WordPressShared - WordPressUI @@ -732,6 +731,9 @@ EXTERNAL SOURCES: :git: https://github.com/wordpress-mobile/gutenberg-mobile.git :submodules: true :tag: v1.70.0-alpha1 + WordPressKit: + :branch: feature/17135-notifications_mark_all_read_support + :git: https://github.com/wordpress-mobile/WordPressKit-iOS.git Yoga: :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.70.0-alpha1/third-party-podspecs/Yoga.podspec.json @@ -747,6 +749,9 @@ CHECKOUT OPTIONS: :git: https://github.com/wordpress-mobile/gutenberg-mobile.git :submodules: true :tag: v1.70.0-alpha1 + WordPressKit: + :commit: 782ad5597607d5bacccc74c53bd594ed0e1d040b + :git: https://github.com/wordpress-mobile/WordPressKit-iOS.git SPEC CHECKSUMS: Alamofire: 3ec537f71edc9804815215393ae2b1a8ea33a844 @@ -833,7 +838,7 @@ SPEC CHECKSUMS: WordPress-Aztec-iOS: 144f124148079084860368dfd27cb96e0952853e WordPress-Editor-iOS: 20551d5a5e51f29832064f08faaaae8e1da7e1e2 WordPressAuthenticator: 0b3423546d92a976e3ce627d2e5a0350716b1f5b - WordPressKit: 52329b519bd0da6533cd4c79070424d0672ed7ee + WordPressKit: 8da2b07a7ca87004c065717e08f0eef1646ee1c5 WordPressMocks: 6b52b0764d9939408151367dd9c6e8a910877f4d WordPressShared: a4b0308a6345d4dda20c8f7ad9317df4246b4a00 WordPressUI: 45591178e843ecb82e65e868ec766148befe9f9f @@ -849,6 +854,6 @@ SPEC CHECKSUMS: ZendeskSupportSDK: 3a8e508ab1d9dd22dc038df6c694466414e037ba ZIPFoundation: e27423c004a5a1410c15933407747374e7c6cb6e -PODFILE CHECKSUM: f18b631a6b25713184495ced4e4387f59388c803 +PODFILE CHECKSUM: 886b3864790b9096a12725bcf639e1f1aaea3427 COCOAPODS: 1.11.2 From 02f78b060493ac85c9f288d66783bc297a223292 Mon Sep 17 00:00:00 2001 From: alpavanoglu Date: Thu, 20 Jan 2022 20:22:25 +0100 Subject: [PATCH 034/114] Update for change requests --- .../Services/NotificationSyncMediator.swift | 48 ++++--------------- .../NotificationsViewController.swift | 39 ++++++++------- 2 files changed, 29 insertions(+), 58 deletions(-) diff --git a/WordPress/Classes/Services/NotificationSyncMediator.swift b/WordPress/Classes/Services/NotificationSyncMediator.swift index a58bf1c4c781..5bfc22f786f5 100644 --- a/WordPress/Classes/Services/NotificationSyncMediator.swift +++ b/WordPress/Classes/Services/NotificationSyncMediator.swift @@ -159,7 +159,7 @@ class NotificationSyncMediator { /// - completion: Callback to be executed on completion. /// func markAsRead(_ notification: Notification, completion: ((Error?)-> Void)? = nil) { - mark(notification, asRead: true, completion: completion) + mark([notification], asRead: true, completion: completion) } /// Marks an array of notifications as Read. @@ -174,7 +174,6 @@ class NotificationSyncMediator { mark(notifications, asRead: true, completion: completion) } - /// Marks a Notification as Unead. /// /// - Note: This method should only be used on the main thread. @@ -184,16 +183,19 @@ class NotificationSyncMediator { /// - completion: Callback to be executed on completion. /// func markAsUnread(_ notification: Notification, completion: ((Error?)-> Void)? = nil) { - mark(notification, asRead: false, completion: completion) + mark([notification], asRead: false, completion: completion) } - private func mark(_ notification: Notification, asRead read: Bool = true, completion: ((Error?)-> Void)? = nil) { + private func mark(_ notifications: [Notification], asRead read: Bool = true, completion: ((Error?)-> Void)? = nil) { assert(Thread.isMainThread) - let noteID = notification.notificationId - remote.updateReadStatus(noteID, read: read) { error in + let noteIDs = notifications.map { + $0.notificationId + } + + remote.updateReadStatusForNotifications(noteIDs, read: read) { error in if let error = error { - DDLogError("Error marking note as \(Self.readState(for: read)): \(error)") + DDLogError("Error marking notifications as \(Self.readState(for: read)): \(error)") // Ideally, we'd want to revert to the previous status if this // fails, but if the note is visible, the UI layer will keep // trying to mark this note and fail. @@ -203,25 +205,6 @@ class NotificationSyncMediator { // next successful sync. // // https://github.com/wordpress-mobile/WordPress-iOS/issues/7216 - NotificationSyncMediator()?.invalidateCacheForNotification(with: noteID) - } - - completion?(error) - } - - updateReadStatus(read, forNoteWithObjectID: notification.objectID) - } - - private func mark(_ notifications: [Notification], asRead read: Bool = true, completion: ((Error?)-> Void)? = nil) { - assert(Thread.isMainThread) - - let noteIDs = notifications.map { - $0.notificationId - } - - remote.updateReadStatusForNotifications(noteIDs, read: read) { error in - if let error = error { - DDLogError("Error marking notifications as \(Self.readState(for: read)): \(error)") NotificationSyncMediator()?.invalidateCacheForNotifications(with: noteIDs) } @@ -299,18 +282,7 @@ class NotificationSyncMediator { /// Invalidates the local cache for the notification with the specified ID. /// func invalidateCacheForNotification(with noteID: String) { - let derivedContext = type(of: self).sharedDerivedContext(with: contextManager) - let predicate = NSPredicate(format: "(notificationId == %@)", noteID) - - derivedContext.perform { - guard let notification = derivedContext.firstObject(ofType: Notification.self, matching: predicate) else { - return - } - - notification.notificationHash = nil - - self.contextManager.save(derivedContext) - } + invalidateCacheForNotifications(with: [noteID]) } /// Invalidates the local cache for all the notifications with specified ID's in the array. diff --git a/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationsViewController.swift b/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationsViewController.swift index 0b41422ddfc3..81498d27bb2a 100644 --- a/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationsViewController.swift +++ b/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationsViewController.swift @@ -175,7 +175,7 @@ class NotificationsViewController: UITableViewController, UIViewControllerRestor // Refresh the UI reloadResultsControllerIfNeeded() - updateMarkAllAsReadTintColor() + updateMarkAllAsReadButton() if !splitViewControllerIsHorizontallyCompact { reloadTableViewPreservingSelection() @@ -841,14 +841,14 @@ private extension NotificationsViewController { // private extension NotificationsViewController { private enum Localization { - static let markAllAsReadNoticeTitle = NSLocalizedString( - "Success", - comment: "Title for mark all as read success notice." + static let markAllAsReadNoticeSuccess = NSLocalizedString( + "Notifications marked as read", + comment: "Title for mark all as read success notice" ) - static let markAllAsReadNoticeMessage = NSLocalizedString( - "Notifications marked as read.", - comment: "Message for mark all as read success notice." + static let markAllAsReadNoticeFailure = NSLocalizedString( + "Failed marking Notifications as read", + comment: "Message for mark all as read success notice" ) } @@ -879,13 +879,14 @@ private extension NotificationsViewController { !$0.read } - NotificationSyncMediator()?.markAsRead(unreadNotifications) - let notice = Notice( - title: Localization.markAllAsReadNoticeTitle, - message: Localization.markAllAsReadNoticeMessage - ) - ActionDispatcherFacade().dispatch(NoticeAction.post(notice)) - updateMarkAllAsReadTintColor() + NotificationSyncMediator()?.markAsRead(unreadNotifications, completion: { error in + let notice = Notice( + title: error != nil ? Localization.markAllAsReadNoticeFailure : Localization.markAllAsReadNoticeSuccess, + message: nil + ) + ActionDispatcherFacade().dispatch(NoticeAction.post(notice)) + }) + updateMarkAllAsReadButton() } func markAsUnread(note: Notification) { @@ -894,7 +895,7 @@ private extension NotificationsViewController { } NotificationSyncMediator()?.markAsUnread(note) - updateMarkAllAsReadTintColor() + updateMarkAllAsReadButton() } func markWelcomeNotificationAsSeenIfNeeded() { @@ -905,14 +906,12 @@ private extension NotificationsViewController { } } - func updateMarkAllAsReadTintColor() { + func updateMarkAllAsReadButton() { guard let notes = tableViewHandler.resultsController.fetchedObjects as? [Notification] else { return } - let isEnabled = !notes.filter { - !$0.read - }.isEmpty + let isEnabled = notes.first { !$0.read } != nil markAllAsReadBarButtonItem.tintColor = isEnabled ? .primary : .textTertiary markAllAsReadBarButtonItem.isEnabled = isEnabled @@ -989,7 +988,7 @@ private extension NotificationsViewController { // Don't overwork! lastReloadDate = Date() needsReloadResults = false - updateMarkAllAsReadTintColor() + updateMarkAllAsReadButton() } func reloadRowForNotificationWithID(_ noteObjectID: NSManagedObjectID) { From 5691961b1683c659b3133ab0ce05d60ce0189c8c Mon Sep 17 00:00:00 2001 From: alpavanoglu Date: Thu, 20 Jan 2022 20:30:02 +0100 Subject: [PATCH 035/114] Update for-in loops as forEach --- WordPress/Classes/Services/NotificationSyncMediator.swift | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/WordPress/Classes/Services/NotificationSyncMediator.swift b/WordPress/Classes/Services/NotificationSyncMediator.swift index 5bfc22f786f5..25e78000303a 100644 --- a/WordPress/Classes/Services/NotificationSyncMediator.swift +++ b/WordPress/Classes/Services/NotificationSyncMediator.swift @@ -294,9 +294,7 @@ class NotificationSyncMediator { let predicate = NSPredicate(format: "(notificationId IN %@)", noteIDs) let notifications = derivedContext.allObjects(ofType: Notification.self, matching: predicate) - for notification in notifications { - notification.notificationHash = nil - } + notifications.forEach { $0.notificationHash = nil } self.contextManager.save(derivedContext) } @@ -421,9 +419,7 @@ private extension NotificationSyncMediator { let notes = mainContext.allObjects(ofType: Notification.self, matching: predicate) - for note in notes { - note.read = status - } + notes.forEach { $0.read = status } contextManager.saveContextAndWait(mainContext) } From aa04e2d4d8fd630f8ffb52aded29131e0e130149 Mon Sep 17 00:00:00 2001 From: alpavanoglu Date: Thu, 20 Jan 2022 21:23:14 +0100 Subject: [PATCH 036/114] Move `updateMarkAllAsReadButton` inside of closure --- .../Controllers/NotificationsViewController.swift | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationsViewController.swift b/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationsViewController.swift index 81498d27bb2a..3ea8f467d9de 100644 --- a/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationsViewController.swift +++ b/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationsViewController.swift @@ -879,14 +879,15 @@ private extension NotificationsViewController { !$0.read } - NotificationSyncMediator()?.markAsRead(unreadNotifications, completion: { error in + NotificationSyncMediator()?.markAsRead(unreadNotifications, completion: { [weak self] error in + guard let self = self else { return } + let notice = Notice( - title: error != nil ? Localization.markAllAsReadNoticeFailure : Localization.markAllAsReadNoticeSuccess, - message: nil + title: error != nil ? Localization.markAllAsReadNoticeFailure : Localization.markAllAsReadNoticeSuccess ) ActionDispatcherFacade().dispatch(NoticeAction.post(notice)) + self.updateMarkAllAsReadButton() }) - updateMarkAllAsReadButton() } func markAsUnread(note: Notification) { From aba412ce686a3b3723a07cff994ada80d49c80a5 Mon Sep 17 00:00:00 2001 From: alpavanoglu Date: Thu, 20 Jan 2022 21:33:40 +0100 Subject: [PATCH 037/114] Remove self guard to let notice show even VC is deallocated --- .../Controllers/NotificationsViewController.swift | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationsViewController.swift b/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationsViewController.swift index 3ea8f467d9de..698d74c83e90 100644 --- a/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationsViewController.swift +++ b/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationsViewController.swift @@ -880,13 +880,11 @@ private extension NotificationsViewController { } NotificationSyncMediator()?.markAsRead(unreadNotifications, completion: { [weak self] error in - guard let self = self else { return } - let notice = Notice( title: error != nil ? Localization.markAllAsReadNoticeFailure : Localization.markAllAsReadNoticeSuccess ) ActionDispatcherFacade().dispatch(NoticeAction.post(notice)) - self.updateMarkAllAsReadButton() + self?.updateMarkAllAsReadButton() }) } From 747a9e9b9126e9d1e57db387fba09a9301c9b970 Mon Sep 17 00:00:00 2001 From: alpavanoglu Date: Thu, 20 Jan 2022 23:19:31 +0100 Subject: [PATCH 038/114] Add `notificationsMarkAllReadTapped` event --- WordPress/Classes/Utility/Analytics/WPAnalyticsEvent.swift | 3 +++ .../Controllers/NotificationsViewController.swift | 2 ++ 2 files changed, 5 insertions(+) diff --git a/WordPress/Classes/Utility/Analytics/WPAnalyticsEvent.swift b/WordPress/Classes/Utility/Analytics/WPAnalyticsEvent.swift index e2a60679eb4a..b745ee9738ae 100644 --- a/WordPress/Classes/Utility/Analytics/WPAnalyticsEvent.swift +++ b/WordPress/Classes/Utility/Analytics/WPAnalyticsEvent.swift @@ -264,6 +264,7 @@ import Foundation // Notifications case notificationsPreviousTapped case notificationsNextTapped + case notificationsMarkAllReadTapped // Sharing Buttons case sharingButtonsEditSharingButtonsToggled @@ -751,6 +752,8 @@ import Foundation return "notifications_previous_tapped" case .notificationsNextTapped: return "notifications_next_tapped" + case .notificationsMarkAllReadTapped: + return "notifications_mark_all_read_tapped" // Sharing case .sharingButtonsEditSharingButtonsToggled: diff --git a/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationsViewController.swift b/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationsViewController.swift index 698d74c83e90..1ed8cf5ef522 100644 --- a/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationsViewController.swift +++ b/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationsViewController.swift @@ -875,6 +875,8 @@ private extension NotificationsViewController { return } + WPAnalytics.track(.notificationsMarkAllReadTapped) + let unreadNotifications = notes.filter { !$0.read } From a5a0d9e0cb6bfff2664dec03fcd0efef8a5a4fdb Mon Sep 17 00:00:00 2001 From: Stephenie Harris Date: Fri, 21 Jan 2022 11:37:49 -0700 Subject: [PATCH 039/114] Enable markAllNotificationsAsRead for develop. --- WordPress/Classes/Utility/BuildInformation/FeatureFlag.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WordPress/Classes/Utility/BuildInformation/FeatureFlag.swift b/WordPress/Classes/Utility/BuildInformation/FeatureFlag.swift index ce764854fb6e..15d4de61fe68 100644 --- a/WordPress/Classes/Utility/BuildInformation/FeatureFlag.swift +++ b/WordPress/Classes/Utility/BuildInformation/FeatureFlag.swift @@ -69,7 +69,7 @@ enum FeatureFlag: Int, CaseIterable, OverrideableFlag { case .mySiteDashboard: return false case .markAllNotificationsAsRead: - return false + return BuildConfiguration.current ~= [.localDeveloper, .a8cBranchTest, .a8cPrereleaseTesting] case .followConversationPostDetails: return true case .mediaPickerPermissionsNotice: From 54ecdf481105c21c6e9344d140dd188b1ee86df9 Mon Sep 17 00:00:00 2001 From: Leandro Alonso Date: Mon, 24 Jan 2022 12:47:15 -0300 Subject: [PATCH 040/114] refactor: change blog menu to use insetGrouped style --- .../ViewRelated/Blog/Blog Details/BlogDetailsViewController.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController.m b/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController.m index bd8b11cb7166..dbfe133f3cae 100644 --- a/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController.m +++ b/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController.m @@ -326,7 +326,7 @@ - (void)viewDidLoad { [super viewDidLoad]; - _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped]; + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStyleInsetGrouped]; self.tableView.delegate = self; self.tableView.dataSource = self; self.tableView.translatesAutoresizingMaskIntoConstraints = false; From 63beadd95dab6fcf7e72dd2f5dd58a6665bdfc34 Mon Sep 17 00:00:00 2001 From: Leandro Alonso Date: Mon, 24 Jan 2022 12:47:42 -0300 Subject: [PATCH 041/114] refactor: update header leading constraints used for insetGrouped --- .../Blog Details/BlogDetailsSectionHeaderView.xib | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsSectionHeaderView.xib b/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsSectionHeaderView.xib index c2384a466489..593945939408 100644 --- a/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsSectionHeaderView.xib +++ b/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsSectionHeaderView.xib @@ -1,9 +1,9 @@ - + - + @@ -15,7 +15,7 @@ - + + - From cb95c16b49e04536fef749532958488e83a3682b Mon Sep 17 00:00:00 2001 From: Leandro Alonso Date: Mon, 24 Jan 2022 12:48:01 -0300 Subject: [PATCH 042/114] refactor: update blog header to use the new insetGrouped style padding --- .../Blog/Blog Details/Detail Header/BlogDetailHeaderView.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WordPress/Classes/ViewRelated/Blog/Blog Details/Detail Header/BlogDetailHeaderView.swift b/WordPress/Classes/ViewRelated/Blog/Blog Details/Detail Header/BlogDetailHeaderView.swift index 4f3fb42352ef..ef911dbcc13b 100644 --- a/WordPress/Classes/ViewRelated/Blog/Blog Details/Detail Header/BlogDetailHeaderView.swift +++ b/WordPress/Classes/ViewRelated/Blog/Blog Details/Detail Header/BlogDetailHeaderView.swift @@ -83,7 +83,7 @@ class BlogDetailHeaderView: UIView { } private enum LayoutSpacing { - static let atSides: CGFloat = 16 + static let atSides: CGFloat = 20 static let top: CGFloat = 16 static let bottom: CGFloat = 16 static let belowActionRow: CGFloat = 24 From 8ed02d9f82390c5979bb4361373e27b2c58f9f51 Mon Sep 17 00:00:00 2001 From: sla8c Date: Mon, 24 Jan 2022 16:56:54 +0100 Subject: [PATCH 043/114] added accessibility properties to the editable fields --- WordPress/Classes/Utility/WPImmuTableRows.swift | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/WordPress/Classes/Utility/WPImmuTableRows.swift b/WordPress/Classes/Utility/WPImmuTableRows.swift index 31f2fc4678a0..571367807b04 100644 --- a/WordPress/Classes/Utility/WPImmuTableRows.swift +++ b/WordPress/Classes/Utility/WPImmuTableRows.swift @@ -93,6 +93,8 @@ struct EditableTextRow: ImmuTableRow { func configureCell(_ cell: UITableViewCell) { cell.textLabel?.text = title cell.detailTextLabel?.text = value + cell.accessibilityLabel = title + cell.accessibilityHint = value cell.accessoryType = .disclosureIndicator if accessoryImage != nil { cell.accessoryView = UIImageView(image: accessoryImage) @@ -129,6 +131,9 @@ struct TextRow: ImmuTableRow { func configureCell(_ cell: UITableViewCell) { cell.textLabel?.text = title cell.detailTextLabel?.text = value + cell.accessibilityLabel = title + cell.accessibilityHint = value + cell.selectionStyle = .none WPStyleGuide.configureTableViewCell(cell) From 985d57246d0456781732adc5fe99905300331f0d Mon Sep 17 00:00:00 2001 From: sla8c Date: Mon, 24 Jan 2022 16:58:18 +0100 Subject: [PATCH 044/114] accessibility improvements for the image - should be marked as a button and label and hint added --- .../Classes/ViewRelated/Cells/MediaItemTableViewCells.swift | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/WordPress/Classes/ViewRelated/Cells/MediaItemTableViewCells.swift b/WordPress/Classes/ViewRelated/Cells/MediaItemTableViewCells.swift index 847f78cf9140..1f2b87095f26 100644 --- a/WordPress/Classes/ViewRelated/Cells/MediaItemTableViewCells.swift +++ b/WordPress/Classes/ViewRelated/Cells/MediaItemTableViewCells.swift @@ -175,6 +175,9 @@ struct MediaImageRow: ImmuTableRow { setAspectRatioFor(cell) loadImageFor(cell) cell.isVideo = media.mediaType == .video + cell.accessibilityTraits = .button + cell.accessibilityLabel = NSLocalizedString("Preview media", comment: "Accessibility label for media item preview for user's viewing an item in their media library") + cell.accessibilityHint = NSLocalizedString("Click to view media in full screen", comment: "Accessibility hint for media item preview for user's viewing an item in their media library") } } @@ -239,6 +242,9 @@ struct MediaDocumentRow: ImmuTableRow { if let cell = cell as? MediaItemDocumentTableViewCell { cell.customImageView.tintColor = cell.textLabel?.textColor cell.showIconForMedia(media) + cell.accessibilityTraits = .button + cell.accessibilityLabel = NSLocalizedString("Preview media", comment: "Accessibility label for media item preview for user's viewing an item in their media library") + cell.accessibilityHint = NSLocalizedString("Click to view media in full screen", comment: "Accessibility hint for media item preview for user's viewing an item in their media library") } } } From ef561a3c843b4713d9842172626d8dd21c3cca3c Mon Sep 17 00:00:00 2001 From: Leandro Alonso Date: Mon, 24 Jan 2022 13:12:32 -0300 Subject: [PATCH 045/114] refactor: change jetpack settings to use insetGrouped --- .../Jetpack Settings/JetpackConnectionViewController.swift | 2 +- .../Jetpack Settings/JetpackSettingsViewController.swift | 2 +- .../ViewRelated/Tools/SettingsListEditorViewController.swift | 2 +- .../Classes/ViewRelated/Tools/SettingsTextViewController.m | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Jetpack/Jetpack Settings/JetpackConnectionViewController.swift b/WordPress/Classes/ViewRelated/Jetpack/Jetpack Settings/JetpackConnectionViewController.swift index f88c71ea3212..d464fb310da1 100644 --- a/WordPress/Classes/ViewRelated/Jetpack/Jetpack Settings/JetpackConnectionViewController.swift +++ b/WordPress/Classes/ViewRelated/Jetpack/Jetpack Settings/JetpackConnectionViewController.swift @@ -24,7 +24,7 @@ open class JetpackConnectionViewController: UITableViewController { // MARK: - Initializer @objc public convenience init(blog: Blog) { - self.init(style: .grouped) + self.init(style: .insetGrouped) self.blog = blog self.service = BlogJetpackSettingsService(managedObjectContext: blog.managedObjectContext!) } diff --git a/WordPress/Classes/ViewRelated/Jetpack/Jetpack Settings/JetpackSettingsViewController.swift b/WordPress/Classes/ViewRelated/Jetpack/Jetpack Settings/JetpackSettingsViewController.swift index 489c6cb2d890..3560446996b5 100644 --- a/WordPress/Classes/ViewRelated/Jetpack/Jetpack Settings/JetpackSettingsViewController.swift +++ b/WordPress/Classes/ViewRelated/Jetpack/Jetpack Settings/JetpackSettingsViewController.swift @@ -30,7 +30,7 @@ open class JetpackSettingsViewController: UITableViewController { // MARK: - Initializer @objc public convenience init(blog: Blog) { - self.init(style: .grouped) + self.init(style: .insetGrouped) self.blog = blog self.service = BlogJetpackSettingsService(managedObjectContext: settings.managedObjectContext!) } diff --git a/WordPress/Classes/ViewRelated/Tools/SettingsListEditorViewController.swift b/WordPress/Classes/ViewRelated/Tools/SettingsListEditorViewController.swift index 7d10507b9be5..702edfab96d2 100644 --- a/WordPress/Classes/ViewRelated/Tools/SettingsListEditorViewController.swift +++ b/WordPress/Classes/ViewRelated/Tools/SettingsListEditorViewController.swift @@ -17,7 +17,7 @@ open class SettingsListEditorViewController: UITableViewController { // MARK: - Initialiers @objc public convenience init(collection: Set?) { - self.init(style: .grouped) + self.init(style: .insetGrouped) emptyText = NSLocalizedString("No Items", comment: "List Editor Empty State Message") diff --git a/WordPress/Classes/ViewRelated/Tools/SettingsTextViewController.m b/WordPress/Classes/ViewRelated/Tools/SettingsTextViewController.m index fa7e3b8e3215..61c70598ced0 100644 --- a/WordPress/Classes/ViewRelated/Tools/SettingsTextViewController.m +++ b/WordPress/Classes/ViewRelated/Tools/SettingsTextViewController.m @@ -47,7 +47,7 @@ - (instancetype)initWithStyle:(UITableViewStyle)style - (instancetype)initWithText:(NSString *)text placeholder:(NSString *)placeholder hint:(NSString *)hint { - self = [super initWithStyle:UITableViewStyleGrouped]; + self = [super initWithStyle:UITableViewStyleInsetGrouped]; if (self) { [self commonInitWithPlaceholder:placeholder hint:hint]; @@ -60,7 +60,7 @@ - (instancetype)initWithText:(NSString *)text placeholder:(NSString *)placeholde - (instancetype)initWithAttributedText:(NSAttributedString *)text defaultAttributes:(NSDictionary *)defaultAttributes placeholder:(NSString *)placeholder hint:(NSString *)hint { - self = [super initWithStyle:UITableViewStyleGrouped]; + self = [super initWithStyle:UITableViewStyleInsetGrouped]; if (self) { [self commonInitWithPlaceholder:placeholder hint:hint]; From c9de264342593f04075010ad5f6d6275a06448d8 Mon Sep 17 00:00:00 2001 From: Leandro Alonso Date: Mon, 24 Jan 2022 13:21:39 -0300 Subject: [PATCH 046/114] refactor: change Sharing/Publicize table views to insetGrouped --- .../Classes/ViewRelated/Blog/SharingButtonsViewController.swift | 2 +- .../Classes/ViewRelated/Blog/SharingConnectionsViewController.m | 2 +- WordPress/Classes/ViewRelated/Blog/SharingViewController.m | 2 +- .../Classes/ViewRelated/Tools/SettingsSelectionViewController.m | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Blog/SharingButtonsViewController.swift b/WordPress/Classes/ViewRelated/Blog/SharingButtonsViewController.swift index ef82bb12c114..ce34d85b9ac4 100644 --- a/WordPress/Classes/ViewRelated/Blog/SharingButtonsViewController.swift +++ b/WordPress/Classes/ViewRelated/Blog/SharingButtonsViewController.swift @@ -58,7 +58,7 @@ import WordPressShared @objc init(blog: Blog) { self.blog = blog - super.init(style: .grouped) + super.init(style: .insetGrouped) } required init?(coder aDecoder: NSCoder) { diff --git a/WordPress/Classes/ViewRelated/Blog/SharingConnectionsViewController.m b/WordPress/Classes/ViewRelated/Blog/SharingConnectionsViewController.m index 929f043fa11b..b7e4ad760f04 100644 --- a/WordPress/Classes/ViewRelated/Blog/SharingConnectionsViewController.m +++ b/WordPress/Classes/ViewRelated/Blog/SharingConnectionsViewController.m @@ -33,7 +33,7 @@ - (void)dealloc - (instancetype)initWithBlog:(Blog *)blog publicizeService:(PublicizeService *)publicizeService { NSParameterAssert([blog isKindOfClass:[Blog class]]); - self = [self initWithStyle:UITableViewStyleGrouped]; + self = [self initWithStyle:UITableViewStyleInsetGrouped]; if (self) { _blog = blog; _publicizeService = publicizeService; diff --git a/WordPress/Classes/ViewRelated/Blog/SharingViewController.m b/WordPress/Classes/ViewRelated/Blog/SharingViewController.m index f077644d3667..fcafbe869105 100644 --- a/WordPress/Classes/ViewRelated/Blog/SharingViewController.m +++ b/WordPress/Classes/ViewRelated/Blog/SharingViewController.m @@ -30,7 +30,7 @@ @implementation SharingViewController - (instancetype)initWithBlog:(Blog *)blog delegate:(id)delegate { NSParameterAssert([blog isKindOfClass:[Blog class]]); - self = [self initWithStyle:UITableViewStyleGrouped]; + self = [self initWithStyle:UITableViewStyleInsetGrouped]; if (self) { _blog = blog; _publicizeServices = [NSMutableArray new]; diff --git a/WordPress/Classes/ViewRelated/Tools/SettingsSelectionViewController.m b/WordPress/Classes/ViewRelated/Tools/SettingsSelectionViewController.m index 1073a31ab9f0..7b3e078a71e8 100644 --- a/WordPress/Classes/ViewRelated/Tools/SettingsSelectionViewController.m +++ b/WordPress/Classes/ViewRelated/Tools/SettingsSelectionViewController.m @@ -41,7 +41,7 @@ - (instancetype)initWithStyle:(UITableViewStyle)style { - (instancetype)initWithDictionary:(NSDictionary *)dictionary { - return [self initWithStyle:UITableViewStyleGrouped andDictionary:dictionary]; + return [self initWithStyle:UITableViewStyleInsetGrouped andDictionary:dictionary]; } - (instancetype)initWithStyle:(UITableViewStyle)style andDictionary:(NSDictionary *)dictionary From 11a63dbb43082904ed8894f93b8f2144d07fb1a6 Mon Sep 17 00:00:00 2001 From: Leandro Alonso Date: Mon, 24 Jan 2022 13:45:06 -0300 Subject: [PATCH 047/114] refactor: change all site settings tableViews to group inset --- .../DateAndTimeFormatSettingsViewController.swift | 8 ++++---- .../DiscussionSettingsViewController.swift | 14 +++++++------- .../HomepageSettingsViewController.swift | 2 +- .../RelatedPostsSettingsViewController.m | 2 +- .../SiteSettingsViewController+Swift.swift | 2 +- .../Site Settings/SiteSettingsViewController.m | 2 +- .../JetpackSpeedUpSiteSettingsViewController.swift | 2 +- .../Categories/PostCategoriesViewController.swift | 2 +- 8 files changed, 17 insertions(+), 17 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Blog/Site Settings/DateAndTimeFormatSettingsViewController.swift b/WordPress/Classes/ViewRelated/Blog/Site Settings/DateAndTimeFormatSettingsViewController.swift index fc0e3676b478..f35f77b0a021 100644 --- a/WordPress/Classes/ViewRelated/Blog/Site Settings/DateAndTimeFormatSettingsViewController.swift +++ b/WordPress/Classes/ViewRelated/Blog/Site Settings/DateAndTimeFormatSettingsViewController.swift @@ -35,7 +35,7 @@ open class DateAndTimeFormatSettingsViewController: UITableViewController { // MARK: - Initializer @objc public convenience init(blog: Blog) { - self.init(style: .grouped) + self.init(style: .insetGrouped) self.blog = blog self.service = BlogService(managedObjectContext: settings.managedObjectContext!) } @@ -111,7 +111,7 @@ open class DateAndTimeFormatSettingsViewController: UITableViewController { func pressedDateFormat() -> ImmuTableAction { return { [unowned self] row in - let settingsViewController = SettingsSelectionViewController(style: .grouped) + let settingsViewController = SettingsSelectionViewController(style: .insetGrouped) settingsViewController.title = NSLocalizedString("Date Format", comment: "Writing Date Format Settings Title") settingsViewController.currentValue = self.settings.dateFormat as NSObject @@ -145,7 +145,7 @@ open class DateAndTimeFormatSettingsViewController: UITableViewController { func pressedTimeFormat() -> ImmuTableAction { return { [unowned self] row in - let settingsViewController = SettingsSelectionViewController(style: .grouped) + let settingsViewController = SettingsSelectionViewController(style: .insetGrouped) settingsViewController.title = NSLocalizedString("Time Format", comment: "Writing Time Format Settings Title") settingsViewController.currentValue = self.settings.timeFormat as NSObject @@ -180,7 +180,7 @@ open class DateAndTimeFormatSettingsViewController: UITableViewController { func pressedStartOfWeek() -> ImmuTableAction { return { [unowned self] row in - let settingsViewController = SettingsSelectionViewController(style: .grouped) + let settingsViewController = SettingsSelectionViewController(style: .insetGrouped) settingsViewController.title = NSLocalizedString("Week starts on", comment: "Blog Writing Settings: Weeks starts on") settingsViewController.currentValue = self.settings.startOfWeek as NSObject diff --git a/WordPress/Classes/ViewRelated/Blog/Site Settings/DiscussionSettingsViewController.swift b/WordPress/Classes/ViewRelated/Blog/Site Settings/DiscussionSettingsViewController.swift index 5ccfebae13fa..162f8cdf5738 100644 --- a/WordPress/Classes/ViewRelated/Blog/Site Settings/DiscussionSettingsViewController.swift +++ b/WordPress/Classes/ViewRelated/Blog/Site Settings/DiscussionSettingsViewController.swift @@ -11,7 +11,7 @@ open class DiscussionSettingsViewController: UITableViewController { // MARK: - Initializers / Deinitializers @objc public convenience init(blog: Blog) { - self.init(style: .grouped) + self.init(style: .insetGrouped) self.blog = blog } @@ -226,7 +226,7 @@ open class DiscussionSettingsViewController: UITableViewController { } fileprivate func pressedCloseCommenting(_ payload: AnyObject?) { - let pickerViewController = SettingsPickerViewController(style: .grouped) + let pickerViewController = SettingsPickerViewController(style: .insetGrouped) pickerViewController.title = NSLocalizedString("Close commenting", comment: "Close Comments Title") pickerViewController.switchVisible = true pickerViewController.switchOn = settings.commentsCloseAutomatically @@ -250,7 +250,7 @@ open class DiscussionSettingsViewController: UITableViewController { } fileprivate func pressedSortBy(_ payload: AnyObject?) { - let settingsViewController = SettingsSelectionViewController(style: .grouped) + let settingsViewController = SettingsSelectionViewController(style: .insetGrouped) settingsViewController.title = NSLocalizedString("Sort By", comment: "Discussion Settings Title") settingsViewController.currentValue = settings.commentsSortOrder settingsViewController.titles = CommentsSorting.allTitles @@ -268,7 +268,7 @@ open class DiscussionSettingsViewController: UITableViewController { } fileprivate func pressedThreading(_ payload: AnyObject?) { - let settingsViewController = SettingsSelectionViewController(style: .grouped) + let settingsViewController = SettingsSelectionViewController(style: .insetGrouped) settingsViewController.title = NSLocalizedString("Threading", comment: "Discussion Settings Title") settingsViewController.currentValue = settings.commentsThreading.rawValue as NSObject settingsViewController.titles = CommentsThreading.allTitles @@ -286,7 +286,7 @@ open class DiscussionSettingsViewController: UITableViewController { } fileprivate func pressedPaging(_ payload: AnyObject?) { - let pickerViewController = SettingsPickerViewController(style: .grouped) + let pickerViewController = SettingsPickerViewController(style: .insetGrouped) pickerViewController.title = NSLocalizedString("Paging", comment: "Comments Paging") pickerViewController.switchVisible = true pickerViewController.switchOn = settings.commentsPagingEnabled @@ -308,7 +308,7 @@ open class DiscussionSettingsViewController: UITableViewController { } fileprivate func pressedAutomaticallyApprove(_ payload: AnyObject?) { - let settingsViewController = SettingsSelectionViewController(style: .grouped) + let settingsViewController = SettingsSelectionViewController(style: .insetGrouped) settingsViewController.title = NSLocalizedString("Automatically Approve", comment: "Discussion Settings Title") settingsViewController.currentValue = settings.commentsAutoapproval.rawValue as NSObject settingsViewController.titles = CommentsAutoapproval.allTitles @@ -327,7 +327,7 @@ open class DiscussionSettingsViewController: UITableViewController { } fileprivate func pressedLinksInComments(_ payload: AnyObject?) { - let pickerViewController = SettingsPickerViewController(style: .grouped) + let pickerViewController = SettingsPickerViewController(style: .insetGrouped) pickerViewController.title = NSLocalizedString("Links in comments", comment: "Comments Paging") pickerViewController.switchVisible = false pickerViewController.selectionText = NSLocalizedString("Links in comments", comment: "A label title") diff --git a/WordPress/Classes/ViewRelated/Blog/Site Settings/HomepageSettingsViewController.swift b/WordPress/Classes/ViewRelated/Blog/Site Settings/HomepageSettingsViewController.swift index 7f18cc14abda..e5e256794de2 100644 --- a/WordPress/Classes/ViewRelated/Blog/Site Settings/HomepageSettingsViewController.swift +++ b/WordPress/Classes/ViewRelated/Blog/Site Settings/HomepageSettingsViewController.swift @@ -45,7 +45,7 @@ import WordPressShared /// - Parameter blog: The blog for which we want to configure Homepage settings /// @objc public convenience init(blog: Blog) { - self.init(style: .grouped) + self.init(style: .insetGrouped) self.blog = blog diff --git a/WordPress/Classes/ViewRelated/Blog/Site Settings/Related Posts/RelatedPostsSettingsViewController.m b/WordPress/Classes/ViewRelated/Blog/Site Settings/Related Posts/RelatedPostsSettingsViewController.m index cc4d560fb850..a4b82090a9d3 100644 --- a/WordPress/Classes/ViewRelated/Blog/Site Settings/Related Posts/RelatedPostsSettingsViewController.m +++ b/WordPress/Classes/ViewRelated/Blog/Site Settings/Related Posts/RelatedPostsSettingsViewController.m @@ -43,7 +43,7 @@ @implementation RelatedPostsSettingsViewController - (instancetype)initWithBlog:(Blog *)blog { NSParameterAssert([blog isKindOfClass:[Blog class]]); - self = [super initWithStyle:UITableViewStyleGrouped]; + self = [super initWithStyle:UITableViewStyleInsetGrouped]; if (self) { _blog = blog; } diff --git a/WordPress/Classes/ViewRelated/Blog/Site Settings/SiteSettingsViewController+Swift.swift b/WordPress/Classes/ViewRelated/Blog/Site Settings/SiteSettingsViewController+Swift.swift index 55fab46c25da..a9ec6e9f87c3 100644 --- a/WordPress/Classes/ViewRelated/Blog/Site Settings/SiteSettingsViewController+Swift.swift +++ b/WordPress/Classes/ViewRelated/Blog/Site Settings/SiteSettingsViewController+Swift.swift @@ -91,7 +91,7 @@ extension SiteSettingsViewController { } @objc func showPostPerPageSetting() { - let pickerViewController = SettingsPickerViewController(style: .grouped) + let pickerViewController = SettingsPickerViewController(style: .insetGrouped) pickerViewController.title = NSLocalizedString("Posts per Page", comment: "Posts per Page Title") pickerViewController.switchVisible = false pickerViewController.selectionText = NSLocalizedString("The number of posts to show per page.", diff --git a/WordPress/Classes/ViewRelated/Blog/Site Settings/SiteSettingsViewController.m b/WordPress/Classes/ViewRelated/Blog/Site Settings/SiteSettingsViewController.m index fb107b3820cd..77bf4477b25d 100644 --- a/WordPress/Classes/ViewRelated/Blog/Site Settings/SiteSettingsViewController.m +++ b/WordPress/Classes/ViewRelated/Blog/Site Settings/SiteSettingsViewController.m @@ -104,7 +104,7 @@ - (instancetype)initWithBlog:(Blog *)blog { NSParameterAssert([blog isKindOfClass:[Blog class]]); - self = [super initWithStyle:UITableViewStyleGrouped]; + self = [super initWithStyle:UITableViewStyleInsetGrouped]; if (self) { _blog = blog; _username = blog.usernameForSite; diff --git a/WordPress/Classes/ViewRelated/Jetpack/Jetpack Settings/JetpackSpeedUpSiteSettingsViewController.swift b/WordPress/Classes/ViewRelated/Jetpack/Jetpack Settings/JetpackSpeedUpSiteSettingsViewController.swift index a680335acef7..e37eb35f238e 100644 --- a/WordPress/Classes/ViewRelated/Jetpack/Jetpack Settings/JetpackSpeedUpSiteSettingsViewController.swift +++ b/WordPress/Classes/ViewRelated/Jetpack/Jetpack Settings/JetpackSpeedUpSiteSettingsViewController.swift @@ -24,7 +24,7 @@ open class JetpackSpeedUpSiteSettingsViewController: UITableViewController { // MARK: - Initializer @objc public convenience init(blog: Blog) { - self.init(style: .grouped) + self.init(style: .insetGrouped) self.blog = blog self.service = BlogJetpackSettingsService(managedObjectContext: settings.managedObjectContext!) } diff --git a/WordPress/Classes/ViewRelated/Post/Categories/PostCategoriesViewController.swift b/WordPress/Classes/ViewRelated/Post/Categories/PostCategoriesViewController.swift index 035760fbbb29..d60d20b37154 100644 --- a/WordPress/Classes/ViewRelated/Post/Categories/PostCategoriesViewController.swift +++ b/WordPress/Classes/ViewRelated/Post/Categories/PostCategoriesViewController.swift @@ -33,7 +33,7 @@ import Foundation self.blog = blog self.selectionMode = selectionMode self.originalSelection = currentSelection - super.init(style: .grouped) + super.init(style: .insetGrouped) } required init?(coder: NSCoder) { From 2e4d4a8708dff9d8488c5747e90a44d9b951ee4d Mon Sep 17 00:00:00 2001 From: Leandro Alonso Date: Mon, 24 Jan 2022 14:15:34 -0300 Subject: [PATCH 048/114] refactor: change tableViews of "Me" to insetGrouped --- WordPress/Classes/Utility/ImmuTableViewController.swift | 9 +++++++++ .../Account Settings/AccountSettingsViewController.swift | 2 +- .../Me/App Settings/AppSettingsViewController.swift | 8 ++++---- .../Me/App Settings/PrivacySettingsViewController.swift | 2 +- .../ViewRelated/Me/Me Main/MeViewController.swift | 2 +- .../Me/Me Main/Presenter/MeScenePresenter.swift | 2 +- .../Me/My Profile/MyProfileViewController.swift | 2 +- .../ViewRelated/Tools/SettingsMultiTextViewController.m | 2 +- 8 files changed, 19 insertions(+), 10 deletions(-) diff --git a/WordPress/Classes/Utility/ImmuTableViewController.swift b/WordPress/Classes/Utility/ImmuTableViewController.swift index 0f41b0551f00..dfdb008dcae5 100644 --- a/WordPress/Classes/Utility/ImmuTableViewController.swift +++ b/WordPress/Classes/Utility/ImmuTableViewController.swift @@ -59,6 +59,15 @@ final class ImmuTableViewController: UITableViewController, ImmuTablePresenter { // MARK: - Table View Controller + init(controller: ImmuTableController, style: UITableView.Style) { + self.controller = controller + super.init(style: style) + + title = controller.title + registerRows(controller.immuTableRows) + controller.refreshModel() + } + init(controller: ImmuTableController) { self.controller = controller super.init(style: .grouped) diff --git a/WordPress/Classes/ViewRelated/Me/Account Settings/AccountSettingsViewController.swift b/WordPress/Classes/ViewRelated/Me/Account Settings/AccountSettingsViewController.swift index 364f376b6160..4df00a9937e6 100644 --- a/WordPress/Classes/ViewRelated/Me/Account Settings/AccountSettingsViewController.swift +++ b/WordPress/Classes/ViewRelated/Me/Account Settings/AccountSettingsViewController.swift @@ -13,7 +13,7 @@ func AccountSettingsViewController(account: WPAccount) -> ImmuTableViewControlle func AccountSettingsViewController(accountSettingsService: AccountSettingsService) -> ImmuTableViewController { let controller = AccountSettingsController(accountSettingsService: accountSettingsService) - let viewController = ImmuTableViewController(controller: controller) + let viewController = ImmuTableViewController(controller: controller, style: .insetGrouped) viewController.handler.automaticallyDeselectCells = true return viewController } diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/AppSettingsViewController.swift b/WordPress/Classes/ViewRelated/Me/App Settings/AppSettingsViewController.swift index 596fa4293906..325e37cd90d4 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/AppSettingsViewController.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/AppSettingsViewController.swift @@ -25,7 +25,7 @@ class AppSettingsViewController: UITableViewController { } required convenience init() { - self.init(style: .grouped) + self.init(style: .insetGrouped) } override func viewDidLoad() { @@ -248,7 +248,7 @@ class AppSettingsViewController: UITableViewController { func pushDebugMenu() -> ImmuTableAction { return { [weak self] row in - let controller = DebugMenuViewController() + let controller = DebugMenuViewController(style: .insetGrouped) self?.navigationController?.pushViewController(controller, animated: true) } } @@ -262,7 +262,7 @@ class AppSettingsViewController: UITableViewController { func pushAbout() -> ImmuTableAction { return { [weak self] row in - let controller = AboutViewController() + let controller = AboutViewController(style: .insetGrouped) self?.navigationController?.pushViewController(controller, animated: true) } } @@ -271,7 +271,7 @@ class AppSettingsViewController: UITableViewController { return { [weak self] _ in WPAnalytics.track(.privacySettingsOpened) - let controller = PrivacySettingsViewController() + let controller = PrivacySettingsViewController(style: .insetGrouped) self?.navigationController?.pushViewController(controller, animated: true) } } diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/PrivacySettingsViewController.swift b/WordPress/Classes/ViewRelated/Me/App Settings/PrivacySettingsViewController.swift index a76678bdaa50..4702ea46e1a6 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/PrivacySettingsViewController.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/PrivacySettingsViewController.swift @@ -15,7 +15,7 @@ class PrivacySettingsViewController: UITableViewController { } required convenience init() { - self.init(style: .grouped) + self.init(style: .insetGrouped) } override func viewDidLoad() { diff --git a/WordPress/Classes/ViewRelated/Me/Me Main/MeViewController.swift b/WordPress/Classes/ViewRelated/Me/Me Main/MeViewController.swift index e0ed4a2adbbb..b3f12e9c6df0 100644 --- a/WordPress/Classes/ViewRelated/Me/Me Main/MeViewController.swift +++ b/WordPress/Classes/ViewRelated/Me/Me Main/MeViewController.swift @@ -248,7 +248,7 @@ class MeViewController: UITableViewController { func pushHelp() -> ImmuTableAction { return { [unowned self] row in - let controller = SupportTableViewController() + let controller = SupportTableViewController(style: .insetGrouped) self.navigationController?.pushViewController(controller, animated: true, rightBarButton: self.navigationItem.rightBarButtonItem) diff --git a/WordPress/Classes/ViewRelated/Me/Me Main/Presenter/MeScenePresenter.swift b/WordPress/Classes/ViewRelated/Me/Me Main/Presenter/MeScenePresenter.swift index 7afa3327a7f9..1d0f650afdfa 100644 --- a/WordPress/Classes/ViewRelated/Me/Me Main/Presenter/MeScenePresenter.swift +++ b/WordPress/Classes/ViewRelated/Me/Me Main/Presenter/MeScenePresenter.swift @@ -38,7 +38,7 @@ private extension MeScenePresenter { } func makeMeViewController() -> MeViewController { - return MeViewController() + return MeViewController(style: .insetGrouped) } func makeNavigationController() -> UINavigationController { diff --git a/WordPress/Classes/ViewRelated/Me/My Profile/MyProfileViewController.swift b/WordPress/Classes/ViewRelated/Me/My Profile/MyProfileViewController.swift index 9ba28cd105b9..69c21c2f745c 100644 --- a/WordPress/Classes/ViewRelated/Me/My Profile/MyProfileViewController.swift +++ b/WordPress/Classes/ViewRelated/Me/My Profile/MyProfileViewController.swift @@ -13,7 +13,7 @@ func MyProfileViewController(account: WPAccount) -> ImmuTableViewController? { func MyProfileViewController(account: WPAccount, service: AccountSettingsService, headerView: MyProfileHeaderView) -> ImmuTableViewController { let controller = MyProfileController(account: account, service: service, headerView: headerView) - let viewController = ImmuTableViewController(controller: controller) + let viewController = ImmuTableViewController(controller: controller, style: .insetGrouped) headerView.onAddUpdatePhoto = { [weak controller, weak viewController] in if let viewController = viewController { controller?.presentGravatarPicker(viewController) diff --git a/WordPress/Classes/ViewRelated/Tools/SettingsMultiTextViewController.m b/WordPress/Classes/ViewRelated/Tools/SettingsMultiTextViewController.m index 4a15c4fb7aae..26b5b84389d3 100644 --- a/WordPress/Classes/ViewRelated/Tools/SettingsMultiTextViewController.m +++ b/WordPress/Classes/ViewRelated/Tools/SettingsMultiTextViewController.m @@ -20,7 +20,7 @@ - (instancetype)initWithText:(NSString *)text hint:(NSString *)hint isPassword:(BOOL)isPassword { - self = [super initWithStyle:UITableViewStyleGrouped]; + self = [super initWithStyle:UITableViewStyleInsetGrouped]; if (self) { _text = text; _placeholder = placeholder; From fdbbdcba6d37228d4a049b63dd19450e26c04cb9 Mon Sep 17 00:00:00 2001 From: Leandro Alonso Date: Mon, 24 Jan 2022 14:28:07 -0300 Subject: [PATCH 049/114] refactor: change post settings style to insetGrouped --- .../Post/Categories/WPAddPostCategoryViewController.m | 2 +- WordPress/Classes/ViewRelated/Post/PostSettingsViewController.m | 2 +- .../Post/Scheduling/PublishSettingsViewController.swift | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Post/Categories/WPAddPostCategoryViewController.m b/WordPress/Classes/ViewRelated/Post/Categories/WPAddPostCategoryViewController.m index 03c5575155a5..c7a99fb4b8df 100644 --- a/WordPress/Classes/ViewRelated/Post/Categories/WPAddPostCategoryViewController.m +++ b/WordPress/Classes/ViewRelated/Post/Categories/WPAddPostCategoryViewController.m @@ -25,7 +25,7 @@ @implementation WPAddPostCategoryViewController - (instancetype)initWithBlog:(Blog *)blog { - self = [super initWithStyle:UITableViewStyleGrouped]; + self = [super initWithStyle:UITableViewStyleInsetGrouped]; if (self) { _blog = blog; } diff --git a/WordPress/Classes/ViewRelated/Post/PostSettingsViewController.m b/WordPress/Classes/ViewRelated/Post/PostSettingsViewController.m index 658225fb61ed..b91e87ebb3c4 100644 --- a/WordPress/Classes/ViewRelated/Post/PostSettingsViewController.m +++ b/WordPress/Classes/ViewRelated/Post/PostSettingsViewController.m @@ -103,7 +103,7 @@ - (void)dealloc - (instancetype)initWithPost:(AbstractPost *)aPost { - self = [super initWithStyle:UITableViewStyleGrouped]; + self = [super initWithStyle:UITableViewStyleInsetGrouped]; if (self) { self.apost = aPost; } diff --git a/WordPress/Classes/ViewRelated/Post/Scheduling/PublishSettingsViewController.swift b/WordPress/Classes/ViewRelated/Post/Scheduling/PublishSettingsViewController.swift index 45387eb99167..66e7a9ca6d4a 100644 --- a/WordPress/Classes/ViewRelated/Post/Scheduling/PublishSettingsViewController.swift +++ b/WordPress/Classes/ViewRelated/Post/Scheduling/PublishSettingsViewController.swift @@ -129,7 +129,7 @@ private struct DateAndTimeRow: ImmuTableRow { @objc class func viewController(post: AbstractPost) -> ImmuTableViewController { let controller = PublishSettingsController(post: post) - let viewController = ImmuTableViewController(controller: controller) + let viewController = ImmuTableViewController(controller: controller, style: .insetGrouped) controller.viewController = viewController return viewController } From 2f319f595433de79aabd1b67f06aef7c3b685ed1 Mon Sep 17 00:00:00 2001 From: alpavanoglu Date: Mon, 24 Jan 2022 23:25:39 +0100 Subject: [PATCH 050/114] Add confirmation action sheet --- .../NotificationsViewController.swift | 29 ++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationsViewController.swift b/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationsViewController.swift index 1ed8cf5ef522..4d08c1a407ef 100644 --- a/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationsViewController.swift +++ b/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationsViewController.swift @@ -112,7 +112,7 @@ class NotificationsViewController: UITableViewController, UIViewControllerRestor image: .gridicon(.checkmark), style: .plain, target: self, - action: #selector(markAllAsRead) + action: #selector(showMarkAllAsReadConfirmation) ) markButton.accessibilityLabel = NSLocalizedString( "Mark All As Read", @@ -890,6 +890,33 @@ private extension NotificationsViewController { }) } + /// Presents a confirmation action sheet for mark all as read action. + @objc func showMarkAllAsReadConfirmation() { + let title = NSLocalizedString( + "You are about to mark all notifications as read. Are you sure?", + comment: "Confirmation title for marking all notifications as read." + ) + let cancelTitle = NSLocalizedString( + "Cancel", + comment: "Cancels the mark all as read action." + ) + let markAllTitle = NSLocalizedString( + "Mark All As Read", + comment: "Marks all notifications as read." + ) + + let alertController = UIAlertController(title: title, message: nil, preferredStyle: .actionSheet) + alertController.view.accessibilityIdentifier = "mark-all-as-read-alert" + + alertController.addCancelActionWithTitle(cancelTitle) + + alertController.addActionWithTitle(markAllTitle, style: .default) { [weak self] _ in + self?.markAllAsRead() + } + + present(alertController, animated: true, completion: nil) + } + func markAsUnread(note: Notification) { guard note.read else { return From 78570dc5bf3f83bd6187c50ffb8e45616521a7e9 Mon Sep 17 00:00:00 2001 From: alpavanoglu Date: Mon, 24 Jan 2022 23:27:13 +0100 Subject: [PATCH 051/114] Improve `invalidateCacheForNotification` function signature --- .../Classes/Services/NotificationActionsService.swift | 2 +- .../Classes/Services/NotificationSyncMediator.swift | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/WordPress/Classes/Services/NotificationActionsService.swift b/WordPress/Classes/Services/NotificationActionsService.swift index 8f265f2187f4..659cfa83f3c8 100644 --- a/WordPress/Classes/Services/NotificationActionsService.swift +++ b/WordPress/Classes/Services/NotificationActionsService.swift @@ -268,7 +268,7 @@ private extension NotificationActionsService { let notificationID = block.parent.notificationIdentifier DDLogInfo("Invalidating Cache and Force Sync'ing Notification with ID: \(notificationID)") - mediator.invalidateCacheForNotification(with: notificationID) + mediator.invalidateCacheForNotification(notificationID) mediator.syncNote(with: notificationID) } } diff --git a/WordPress/Classes/Services/NotificationSyncMediator.swift b/WordPress/Classes/Services/NotificationSyncMediator.swift index 25e78000303a..c3fa8da6e0c8 100644 --- a/WordPress/Classes/Services/NotificationSyncMediator.swift +++ b/WordPress/Classes/Services/NotificationSyncMediator.swift @@ -205,7 +205,7 @@ class NotificationSyncMediator { // next successful sync. // // https://github.com/wordpress-mobile/WordPress-iOS/issues/7216 - NotificationSyncMediator()?.invalidateCacheForNotifications(with: noteIDs) + NotificationSyncMediator()?.invalidateCacheForNotifications(noteIDs) } completion?(error) @@ -232,7 +232,7 @@ class NotificationSyncMediator { /// - completion: Callback to be executed on completion. /// func markAsReadAndSync(_ noteID: String, completion: ((Error?) -> Void)? = nil) { - invalidateCacheForNotification(with: noteID) + invalidateCacheForNotification(noteID) remote.updateReadStatus(noteID, read: true) { error in if let error = error { DDLogError("Error marking note as read: \(error)") @@ -281,13 +281,13 @@ class NotificationSyncMediator { /// Invalidates the local cache for the notification with the specified ID. /// - func invalidateCacheForNotification(with noteID: String) { - invalidateCacheForNotifications(with: [noteID]) + func invalidateCacheForNotification(_ noteID: String) { + invalidateCacheForNotifications([noteID]) } /// Invalidates the local cache for all the notifications with specified ID's in the array. /// - func invalidateCacheForNotifications(with noteIDs: [String]) { + func invalidateCacheForNotifications(_ noteIDs: [String]) { let derivedContext = type(of: self).sharedDerivedContext(with: contextManager) derivedContext.perform { From 974c9d239d53a1c75b4fb5d394926fb695d40050 Mon Sep 17 00:00:00 2001 From: sla8c Date: Tue, 25 Jan 2022 08:44:33 +0100 Subject: [PATCH 052/114] accessibilityValue now used for values for TextRow + EditableTextRow. EditableTextRow also checks isUserInteractionEnabled for accessibilityHint --- WordPress/Classes/Utility/WPImmuTableRows.swift | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/WordPress/Classes/Utility/WPImmuTableRows.swift b/WordPress/Classes/Utility/WPImmuTableRows.swift index 571367807b04..124e24b50c67 100644 --- a/WordPress/Classes/Utility/WPImmuTableRows.swift +++ b/WordPress/Classes/Utility/WPImmuTableRows.swift @@ -94,7 +94,10 @@ struct EditableTextRow: ImmuTableRow { cell.textLabel?.text = title cell.detailTextLabel?.text = value cell.accessibilityLabel = title - cell.accessibilityHint = value + cell.accessibilityValue = value + if cell.isUserInteractionEnabled { + cell.accessibilityHint = NSLocalizedString("Tap to edit", comment: "Accessibility hint prompting the user to tap a table row to edit its value.") + } cell.accessoryType = .disclosureIndicator if accessoryImage != nil { cell.accessoryView = UIImageView(image: accessoryImage) @@ -132,7 +135,7 @@ struct TextRow: ImmuTableRow { cell.textLabel?.text = title cell.detailTextLabel?.text = value cell.accessibilityLabel = title - cell.accessibilityHint = value + cell.accessibilityValue = value cell.selectionStyle = .none From 1fc3ad2d6b4986a48347d53e62ed29f4b1e3a991 Mon Sep 17 00:00:00 2001 From: Momo Ozawa Date: Tue, 25 Jan 2022 11:12:19 +0000 Subject: [PATCH 053/114] Refactor: build My Site screen programatically. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This fixes an issue where the large nav title was not collapsing even if the MSD feature flag was disabled. The previous My Site screen layout was built via the InterfaceBuilder, and the root view was a stack view. For the large title to collapse, the root view has to be a scrolling view (table view, collection view, scroll view). By building the layout programmatically instead of via the IB, we can build two different layouts depending on the flag: - MSD flag false: root view is the child vc, and the child vc’s root view is a table view - MSD flag true: root view is stack view for now, which will be updated to a scroll view later --- .../Blog/My Site/MySiteViewController.swift | 72 ++++++++++++++++-- .../Blog/My Site/MySiteViewController.xib | 73 ------------------- WordPress/WordPress.xcodeproj/project.pbxproj | 6 -- 3 files changed, 67 insertions(+), 84 deletions(-) delete mode 100644 WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.xib diff --git a/WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.swift b/WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.swift index c923b3e19833..104e0c22eed5 100644 --- a/WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.swift +++ b/WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.swift @@ -17,10 +17,34 @@ class MySiteViewController: UIViewController, NoResultsViewHost { } } - @IBOutlet weak var stackView: UIStackView! - @IBOutlet weak var segmentedControlContainerView: UIView! - @IBOutlet weak var segmentedControl: UISegmentedControl! - @IBOutlet weak var containerView: UIView! + private lazy var stackView: UIStackView = { + let stackView = UIStackView() + stackView.translatesAutoresizingMaskIntoConstraints = false + stackView.axis = .vertical + stackView.alignment = .fill + stackView.distribution = .fill + stackView.spacing = 0 + return stackView + }() + + private lazy var segmentedControlContainerView: UIView = { + let view = UIView() + view.translatesAutoresizingMaskIntoConstraints = false + view.backgroundColor = .basicBackground + return view + }() + + private lazy var segmentedControl: UISegmentedControl = { + let segmentedControl = UISegmentedControl() + segmentedControl.translatesAutoresizingMaskIntoConstraints = false + return segmentedControl + }() + + private lazy var containerView: UIView = { + let view = UIView() + view.translatesAutoresizingMaskIntoConstraints = false + return view + }() private let meScenePresenter: ScenePresenter private let blogService: BlogService @@ -75,6 +99,7 @@ class MySiteViewController: UIViewController, NoResultsViewHost { // MARK: - View Lifecycle override func viewDidLoad() { + setupConstraints() setupNavigationItem() setupSegmentedControl() subscribeToPostSignupNotifications() @@ -136,6 +161,37 @@ class MySiteViewController: UIViewController, NoResultsViewHost { segmentedControl.selectedSegmentIndex = 0 } + /// If the My Site Dashboard feature flag is enabled, then this method builds a layout with the following + /// view hierarchy: + /// + /// - Stack view + /// - Segmented control container view + /// - Segmented control + /// - Container view (for a child vc) + /// + /// Otherwise, if the My Site Dashboard feature flag is disabled, this method does nothing and the + /// child vc get added directly to the root view of the view controller in showBlogDetails. + /// + private func setupConstraints() { + guard FeatureFlag.mySiteDashboard.enabled else { + return + } + + view.addSubview(stackView) + segmentedControlContainerView.addSubview(segmentedControl) + stackView.addArrangedSubviews([segmentedControlContainerView, containerView]) + + NSLayoutConstraint.activate([ + stackView.leadingAnchor.constraint(equalTo: view.leadingAnchor), + stackView.trailingAnchor.constraint(equalTo: view.trailingAnchor), + stackView.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor), + stackView.bottomAnchor.constraint(equalTo: view.safeAreaLayoutGuide.bottomAnchor), + segmentedControl.centerXAnchor.constraint(equalTo: segmentedControlContainerView.centerXAnchor), + segmentedControl.centerYAnchor.constraint(equalTo: segmentedControlContainerView.centerYAnchor), + segmentedControl.topAnchor.constraint(equalTo: segmentedControlContainerView.topAnchor, constant: 24) + ]) + } + // MARK: - Navigation Item /// In iPad and iOS 14, the large-title bar is collapsed when the VC is first loaded. Call this method from @@ -435,7 +491,13 @@ class MySiteViewController: UIViewController, NoResultsViewHost { addMeButtonToNavigationBar(email: blog.account?.email, meScenePresenter: meScenePresenter) - embedChildInContainerView(blogDetailsViewController) + if FeatureFlag.mySiteDashboard.enabled { + embedChildInContainerView(blogDetailsViewController) + } else { + add(blogDetailsViewController) + blogDetailsViewController.view.translatesAutoresizingMaskIntoConstraints = false + view.pinSubviewToAllEdges(blogDetailsViewController.view) + } blogDetailsViewController.showInitialDetailsForBlog() } diff --git a/WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.xib b/WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.xib deleted file mode 100644 index fb706539c495..000000000000 --- a/WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.xib +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/WordPress/WordPress.xcodeproj/project.pbxproj b/WordPress/WordPress.xcodeproj/project.pbxproj index 0af5bc44f838..59fd9802a270 100644 --- a/WordPress/WordPress.xcodeproj/project.pbxproj +++ b/WordPress/WordPress.xcodeproj/project.pbxproj @@ -2759,8 +2759,6 @@ FA8E1F7725EEFA7300063673 /* ReaderPostService+RelatedPosts.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA8E1F7625EEFA7300063673 /* ReaderPostService+RelatedPosts.swift */; }; FA90EFEF262E74210055AB22 /* JetpackWebViewControllerFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA90EFEE262E74210055AB22 /* JetpackWebViewControllerFactory.swift */; }; FA90EFF0262E74210055AB22 /* JetpackWebViewControllerFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA90EFEE262E74210055AB22 /* JetpackWebViewControllerFactory.swift */; }; - FA94D9E9278C83A900FC6CE3 /* MySiteViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = FA94D9E8278C83A900FC6CE3 /* MySiteViewController.xib */; }; - FA94D9EA278C83A900FC6CE3 /* MySiteViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = FA94D9E8278C83A900FC6CE3 /* MySiteViewController.xib */; }; FAADE42626159AFE00BF29FE /* AppConstants.swift in Sources */ = {isa = PBXBuildFile; fileRef = FAADE3F02615996E00BF29FE /* AppConstants.swift */; }; FAADE43A26159B2800BF29FE /* AppConstants.swift in Sources */ = {isa = PBXBuildFile; fileRef = FAADE42726159B1300BF29FE /* AppConstants.swift */; }; FAB4F32724EDE12A00F259BA /* FollowCommentsServiceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = FAB4F32624EDE12A00F259BA /* FollowCommentsServiceTests.swift */; }; @@ -7511,7 +7509,6 @@ FA7F92C925E61C9300502D2A /* ReaderTagsFooter.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ReaderTagsFooter.xib; sourceTree = ""; }; FA8E1F7625EEFA7300063673 /* ReaderPostService+RelatedPosts.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "ReaderPostService+RelatedPosts.swift"; sourceTree = ""; }; FA90EFEE262E74210055AB22 /* JetpackWebViewControllerFactory.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = JetpackWebViewControllerFactory.swift; path = Classes/Services/JetpackWebViewControllerFactory.swift; sourceTree = SOURCE_ROOT; }; - FA94D9E8278C83A900FC6CE3 /* MySiteViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MySiteViewController.xib; sourceTree = ""; }; FA978DDA26CEB37E009FB14F /* WordPress 132.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = "WordPress 132.xcdatamodel"; sourceTree = ""; }; FAADE3F02615996E00BF29FE /* AppConstants.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppConstants.swift; sourceTree = ""; }; FAADE42726159B1300BF29FE /* AppConstants.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppConstants.swift; sourceTree = ""; }; @@ -8142,7 +8139,6 @@ 1716AEFB25F2927600CF49EC /* MySiteViewController.swift */, 17C1D67B2670E3DC006C8970 /* SiteIconPickerView.swift */, 17C1D7DB26735631006C8970 /* EmojiRenderer.swift */, - FA94D9E8278C83A900FC6CE3 /* MySiteViewController.xib */, ); path = "My Site"; sourceTree = ""; @@ -15652,7 +15648,6 @@ 436D562D2117312700CEAA33 /* RegisterDomainDetailsErrorSectionFooter.xib in Resources */, 5DFA7EC31AF7CB910072023B /* Pages.storyboard in Resources */, F5A34D1025DF2F7F00C9654B /* Shrikhand-Regular.ttf in Resources */, - FA94D9E9278C83A900FC6CE3 /* MySiteViewController.xib in Resources */, 9A73CB082350DE4C002EF20C /* StatsGhostSingleRowCell.xib in Resources */, 1761F18E26209AEE000815EF /* hot-pink-icon-app-76x76@2x.png in Resources */, C7E5F2562799BD54009BC263 /* cool-blue-icon-app-76x76@2x.png in Resources */, @@ -15964,7 +15959,6 @@ FABB20022602FC2C00C8785C /* StatsTableFooter.xib in Resources */, FABB20032602FC2C00C8785C /* NotificationSettingsViewController.xib in Resources */, C7F7AC76261CF1F300CE547F /* JetpackLoginErrorViewController.xib in Resources */, - FA94D9EA278C83A900FC6CE3 /* MySiteViewController.xib in Resources */, FABB20052602FC2C00C8785C /* ThemeBrowserSectionHeaderView.xib in Resources */, FABB20072602FC2C00C8785C /* SitePromptView.xib in Resources */, FABB20082602FC2C00C8785C /* DeleteSite.storyboard in Resources */, From 4e3439635c446a5102f78ef0d96998496d541899 Mon Sep 17 00:00:00 2001 From: sla8c Date: Tue, 25 Jan 2022 13:18:42 +0100 Subject: [PATCH 054/114] Changed working - "Click" to "Tap" which is much more appropriate! --- .../Classes/ViewRelated/Cells/MediaItemTableViewCells.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Cells/MediaItemTableViewCells.swift b/WordPress/Classes/ViewRelated/Cells/MediaItemTableViewCells.swift index 1f2b87095f26..fd2e052e120c 100644 --- a/WordPress/Classes/ViewRelated/Cells/MediaItemTableViewCells.swift +++ b/WordPress/Classes/ViewRelated/Cells/MediaItemTableViewCells.swift @@ -177,7 +177,7 @@ struct MediaImageRow: ImmuTableRow { cell.isVideo = media.mediaType == .video cell.accessibilityTraits = .button cell.accessibilityLabel = NSLocalizedString("Preview media", comment: "Accessibility label for media item preview for user's viewing an item in their media library") - cell.accessibilityHint = NSLocalizedString("Click to view media in full screen", comment: "Accessibility hint for media item preview for user's viewing an item in their media library") + cell.accessibilityHint = NSLocalizedString("Tap to view media in full screen", comment: "Accessibility hint for media item preview for user's viewing an item in their media library") } } @@ -244,7 +244,7 @@ struct MediaDocumentRow: ImmuTableRow { cell.showIconForMedia(media) cell.accessibilityTraits = .button cell.accessibilityLabel = NSLocalizedString("Preview media", comment: "Accessibility label for media item preview for user's viewing an item in their media library") - cell.accessibilityHint = NSLocalizedString("Click to view media in full screen", comment: "Accessibility hint for media item preview for user's viewing an item in their media library") + cell.accessibilityHint = NSLocalizedString("Tap to view media in full screen", comment: "Accessibility hint for media item preview for user's viewing an item in their media library") } } } From 3d53af782916f3a1020fc5ed30cfeb288beb822e Mon Sep 17 00:00:00 2001 From: Momo Ozawa Date: Tue, 25 Jan 2022 11:12:19 +0000 Subject: [PATCH 055/114] Refactor: build My Site screen programatically. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This fixes an issue where the large nav title was not collapsing even if the MSD feature flag was disabled. The previous My Site screen layout was built via the InterfaceBuilder, and the root view was a stack view. For the large title to collapse, the root view has to be a scrolling view (table view, collection view, scroll view). By building the layout programmatically instead of via the IB, we can build two different layouts depending on the flag: - MSD flag false: root view is the child vc, and the child vc’s root view is a table view - MSD flag true: root view is stack view for now, which will be updated to a scroll view later --- .../Blog/My Site/MySiteViewController.swift | 72 ++++++++++++++++-- .../Blog/My Site/MySiteViewController.xib | 73 ------------------- WordPress/WordPress.xcodeproj/project.pbxproj | 6 -- 3 files changed, 67 insertions(+), 84 deletions(-) delete mode 100644 WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.xib diff --git a/WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.swift b/WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.swift index c923b3e19833..104e0c22eed5 100644 --- a/WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.swift +++ b/WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.swift @@ -17,10 +17,34 @@ class MySiteViewController: UIViewController, NoResultsViewHost { } } - @IBOutlet weak var stackView: UIStackView! - @IBOutlet weak var segmentedControlContainerView: UIView! - @IBOutlet weak var segmentedControl: UISegmentedControl! - @IBOutlet weak var containerView: UIView! + private lazy var stackView: UIStackView = { + let stackView = UIStackView() + stackView.translatesAutoresizingMaskIntoConstraints = false + stackView.axis = .vertical + stackView.alignment = .fill + stackView.distribution = .fill + stackView.spacing = 0 + return stackView + }() + + private lazy var segmentedControlContainerView: UIView = { + let view = UIView() + view.translatesAutoresizingMaskIntoConstraints = false + view.backgroundColor = .basicBackground + return view + }() + + private lazy var segmentedControl: UISegmentedControl = { + let segmentedControl = UISegmentedControl() + segmentedControl.translatesAutoresizingMaskIntoConstraints = false + return segmentedControl + }() + + private lazy var containerView: UIView = { + let view = UIView() + view.translatesAutoresizingMaskIntoConstraints = false + return view + }() private let meScenePresenter: ScenePresenter private let blogService: BlogService @@ -75,6 +99,7 @@ class MySiteViewController: UIViewController, NoResultsViewHost { // MARK: - View Lifecycle override func viewDidLoad() { + setupConstraints() setupNavigationItem() setupSegmentedControl() subscribeToPostSignupNotifications() @@ -136,6 +161,37 @@ class MySiteViewController: UIViewController, NoResultsViewHost { segmentedControl.selectedSegmentIndex = 0 } + /// If the My Site Dashboard feature flag is enabled, then this method builds a layout with the following + /// view hierarchy: + /// + /// - Stack view + /// - Segmented control container view + /// - Segmented control + /// - Container view (for a child vc) + /// + /// Otherwise, if the My Site Dashboard feature flag is disabled, this method does nothing and the + /// child vc get added directly to the root view of the view controller in showBlogDetails. + /// + private func setupConstraints() { + guard FeatureFlag.mySiteDashboard.enabled else { + return + } + + view.addSubview(stackView) + segmentedControlContainerView.addSubview(segmentedControl) + stackView.addArrangedSubviews([segmentedControlContainerView, containerView]) + + NSLayoutConstraint.activate([ + stackView.leadingAnchor.constraint(equalTo: view.leadingAnchor), + stackView.trailingAnchor.constraint(equalTo: view.trailingAnchor), + stackView.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor), + stackView.bottomAnchor.constraint(equalTo: view.safeAreaLayoutGuide.bottomAnchor), + segmentedControl.centerXAnchor.constraint(equalTo: segmentedControlContainerView.centerXAnchor), + segmentedControl.centerYAnchor.constraint(equalTo: segmentedControlContainerView.centerYAnchor), + segmentedControl.topAnchor.constraint(equalTo: segmentedControlContainerView.topAnchor, constant: 24) + ]) + } + // MARK: - Navigation Item /// In iPad and iOS 14, the large-title bar is collapsed when the VC is first loaded. Call this method from @@ -435,7 +491,13 @@ class MySiteViewController: UIViewController, NoResultsViewHost { addMeButtonToNavigationBar(email: blog.account?.email, meScenePresenter: meScenePresenter) - embedChildInContainerView(blogDetailsViewController) + if FeatureFlag.mySiteDashboard.enabled { + embedChildInContainerView(blogDetailsViewController) + } else { + add(blogDetailsViewController) + blogDetailsViewController.view.translatesAutoresizingMaskIntoConstraints = false + view.pinSubviewToAllEdges(blogDetailsViewController.view) + } blogDetailsViewController.showInitialDetailsForBlog() } diff --git a/WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.xib b/WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.xib deleted file mode 100644 index fb706539c495..000000000000 --- a/WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.xib +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/WordPress/WordPress.xcodeproj/project.pbxproj b/WordPress/WordPress.xcodeproj/project.pbxproj index 0af5bc44f838..59fd9802a270 100644 --- a/WordPress/WordPress.xcodeproj/project.pbxproj +++ b/WordPress/WordPress.xcodeproj/project.pbxproj @@ -2759,8 +2759,6 @@ FA8E1F7725EEFA7300063673 /* ReaderPostService+RelatedPosts.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA8E1F7625EEFA7300063673 /* ReaderPostService+RelatedPosts.swift */; }; FA90EFEF262E74210055AB22 /* JetpackWebViewControllerFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA90EFEE262E74210055AB22 /* JetpackWebViewControllerFactory.swift */; }; FA90EFF0262E74210055AB22 /* JetpackWebViewControllerFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA90EFEE262E74210055AB22 /* JetpackWebViewControllerFactory.swift */; }; - FA94D9E9278C83A900FC6CE3 /* MySiteViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = FA94D9E8278C83A900FC6CE3 /* MySiteViewController.xib */; }; - FA94D9EA278C83A900FC6CE3 /* MySiteViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = FA94D9E8278C83A900FC6CE3 /* MySiteViewController.xib */; }; FAADE42626159AFE00BF29FE /* AppConstants.swift in Sources */ = {isa = PBXBuildFile; fileRef = FAADE3F02615996E00BF29FE /* AppConstants.swift */; }; FAADE43A26159B2800BF29FE /* AppConstants.swift in Sources */ = {isa = PBXBuildFile; fileRef = FAADE42726159B1300BF29FE /* AppConstants.swift */; }; FAB4F32724EDE12A00F259BA /* FollowCommentsServiceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = FAB4F32624EDE12A00F259BA /* FollowCommentsServiceTests.swift */; }; @@ -7511,7 +7509,6 @@ FA7F92C925E61C9300502D2A /* ReaderTagsFooter.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ReaderTagsFooter.xib; sourceTree = ""; }; FA8E1F7625EEFA7300063673 /* ReaderPostService+RelatedPosts.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "ReaderPostService+RelatedPosts.swift"; sourceTree = ""; }; FA90EFEE262E74210055AB22 /* JetpackWebViewControllerFactory.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = JetpackWebViewControllerFactory.swift; path = Classes/Services/JetpackWebViewControllerFactory.swift; sourceTree = SOURCE_ROOT; }; - FA94D9E8278C83A900FC6CE3 /* MySiteViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MySiteViewController.xib; sourceTree = ""; }; FA978DDA26CEB37E009FB14F /* WordPress 132.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = "WordPress 132.xcdatamodel"; sourceTree = ""; }; FAADE3F02615996E00BF29FE /* AppConstants.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppConstants.swift; sourceTree = ""; }; FAADE42726159B1300BF29FE /* AppConstants.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppConstants.swift; sourceTree = ""; }; @@ -8142,7 +8139,6 @@ 1716AEFB25F2927600CF49EC /* MySiteViewController.swift */, 17C1D67B2670E3DC006C8970 /* SiteIconPickerView.swift */, 17C1D7DB26735631006C8970 /* EmojiRenderer.swift */, - FA94D9E8278C83A900FC6CE3 /* MySiteViewController.xib */, ); path = "My Site"; sourceTree = ""; @@ -15652,7 +15648,6 @@ 436D562D2117312700CEAA33 /* RegisterDomainDetailsErrorSectionFooter.xib in Resources */, 5DFA7EC31AF7CB910072023B /* Pages.storyboard in Resources */, F5A34D1025DF2F7F00C9654B /* Shrikhand-Regular.ttf in Resources */, - FA94D9E9278C83A900FC6CE3 /* MySiteViewController.xib in Resources */, 9A73CB082350DE4C002EF20C /* StatsGhostSingleRowCell.xib in Resources */, 1761F18E26209AEE000815EF /* hot-pink-icon-app-76x76@2x.png in Resources */, C7E5F2562799BD54009BC263 /* cool-blue-icon-app-76x76@2x.png in Resources */, @@ -15964,7 +15959,6 @@ FABB20022602FC2C00C8785C /* StatsTableFooter.xib in Resources */, FABB20032602FC2C00C8785C /* NotificationSettingsViewController.xib in Resources */, C7F7AC76261CF1F300CE547F /* JetpackLoginErrorViewController.xib in Resources */, - FA94D9EA278C83A900FC6CE3 /* MySiteViewController.xib in Resources */, FABB20052602FC2C00C8785C /* ThemeBrowserSectionHeaderView.xib in Resources */, FABB20072602FC2C00C8785C /* SitePromptView.xib in Resources */, FABB20082602FC2C00C8785C /* DeleteSite.storyboard in Resources */, From 555adc3f4779a1722a4962b7eb7260afaf06a321 Mon Sep 17 00:00:00 2001 From: Leandro Alonso Date: Tue, 25 Jan 2022 13:14:34 -0300 Subject: [PATCH 056/114] add: nav bar with large title is now transparent --- .../Blog/My Site/MySiteViewController.swift | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.swift b/WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.swift index 104e0c22eed5..3c316a72bfe6 100644 --- a/WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.swift +++ b/WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.swift @@ -99,6 +99,7 @@ class MySiteViewController: UIViewController, NoResultsViewHost { // MARK: - View Lifecycle override func viewDidLoad() { + setupView() setupConstraints() setupNavigationItem() setupSegmentedControl() @@ -112,6 +113,14 @@ class MySiteViewController: UIViewController, NoResultsViewHost { if blog == nil { showBlogDetailsForMainBlogOrNoSites() } + + setupTransparentNavBar() + } + + override func viewWillDisappear(_ animated: Bool) { + super.viewWillDisappear(animated) + + setupOpaqueNavBar() } override func viewDidAppear(_ animated: Bool) { @@ -126,6 +135,8 @@ class MySiteViewController: UIViewController, NoResultsViewHost { FancyAlertViewController.presentCustomAppIconUpgradeAlertIfNecessary(from: self) trackNoSitesVisibleIfNeeded() + + setupTransparentNavBar() } private func subscribeToPostSignupNotifications() { @@ -161,6 +172,10 @@ class MySiteViewController: UIViewController, NoResultsViewHost { segmentedControl.selectedSegmentIndex = 0 } + private func setupView() { + view.backgroundColor = .listBackground + } + /// If the My Site Dashboard feature flag is enabled, then this method builds a layout with the following /// view hierarchy: /// @@ -229,6 +244,14 @@ class MySiteViewController: UIViewController, NoResultsViewHost { navigationController?.navigationBar.accessibilityIdentifier = "my-site-navigation-bar" } + private func setupTransparentNavBar() { + navigationController?.navigationBar.scrollEdgeAppearance?.configureWithTransparentBackground() + } + + private func setupOpaqueNavBar() { + navigationController?.navigationBar.scrollEdgeAppearance?.configureWithOpaqueBackground() + } + // MARK: - Account private func defaultAccount() -> WPAccount? { From fdcbf18368b28f29c66a19dffef8d9eafb817cb7 Mon Sep 17 00:00:00 2001 From: Leandro Alonso Date: Tue, 25 Jan 2022 13:14:54 -0300 Subject: [PATCH 057/114] refactor: change the action buttons to look like a insetGrouped cell --- .../Blog/Blog Details/Detail Header/ActionRow.swift | 7 +++++++ .../Blog Details/Detail Header/BlogDetailHeaderView.swift | 4 ---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Blog/Blog Details/Detail Header/ActionRow.swift b/WordPress/Classes/ViewRelated/Blog/Blog Details/Detail Header/ActionRow.swift index 05f8ab817781..9c07f6632aea 100644 --- a/WordPress/Classes/ViewRelated/Blog/Blog Details/Detail Header/ActionRow.swift +++ b/WordPress/Classes/ViewRelated/Blog/Blog Details/Detail Header/ActionRow.swift @@ -93,6 +93,13 @@ class ActionRow: UIStackView { spacing = Constants.minimumSpacing translatesAutoresizingMaskIntoConstraints = false refreshStackViewVisibility() + + backgroundColor = .appBarBackground + + layer.cornerRadius = 10 + + layoutMargins = UIEdgeInsets.init(top: 16, left: 16, bottom: 16, right: 16) + isLayoutMarginsRelativeArrangement = true } // MARK: - Accessibility diff --git a/WordPress/Classes/ViewRelated/Blog/Blog Details/Detail Header/BlogDetailHeaderView.swift b/WordPress/Classes/ViewRelated/Blog/Blog Details/Detail Header/BlogDetailHeaderView.swift index ef911dbcc13b..2b6938ce9a65 100644 --- a/WordPress/Classes/ViewRelated/Blog/Blog Details/Detail Header/BlogDetailHeaderView.swift +++ b/WordPress/Classes/ViewRelated/Blog/Blog Details/Detail Header/BlogDetailHeaderView.swift @@ -109,8 +109,6 @@ class BlogDetailHeaderView: UIView { super.init(frame: .zero) - backgroundColor = .appBarBackground - setupChildViews(items: items) } @@ -140,8 +138,6 @@ class BlogDetailHeaderView: UIView { addSubview(actionRow) } - addBottomBorder(withColor: .separator) - let showsActionRow = items.count > 0 setupConstraintsForChildViews(showsActionRow) } From a31a82e52f63eddf0a7e93c8e5818af2d3eb2317 Mon Sep 17 00:00:00 2001 From: Leandro Alonso Date: Tue, 25 Jan 2022 17:34:47 -0300 Subject: [PATCH 058/114] fix: make MyProfileHeaderView a UITableViewHeaderFooterView to fix constraints --- .../ViewRelated/Me/My Profile/MyProfileHeaderView.swift | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Me/My Profile/MyProfileHeaderView.swift b/WordPress/Classes/ViewRelated/Me/My Profile/MyProfileHeaderView.swift index 4cc371e19933..66ec36c9fdc8 100644 --- a/WordPress/Classes/ViewRelated/Me/My Profile/MyProfileHeaderView.swift +++ b/WordPress/Classes/ViewRelated/Me/My Profile/MyProfileHeaderView.swift @@ -1,6 +1,6 @@ import Foundation -class MyProfileHeaderView: WPTableViewCell { +class MyProfileHeaderView: UITableViewHeaderFooterView { // MARK: - Public Properties and Outlets @IBOutlet var gravatarImageView: CircularImageView! @IBOutlet var gravatarButton: UIButton! @@ -27,10 +27,6 @@ class MyProfileHeaderView: WPTableViewCell { } } - override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) { - super.init(style: style, reuseIdentifier: reuseIdentifier) - } - required init?(coder aDecoder: NSCoder) { super.init(coder: aDecoder) } From 3599bb26b6f616ee0157b744cc6902d55956e253 Mon Sep 17 00:00:00 2001 From: alpavanoglu Date: Tue, 25 Jan 2022 22:13:18 +0100 Subject: [PATCH 059/114] Add `confirmationMessageTitle` --- .../NotificationsViewController.swift | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationsViewController.swift b/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationsViewController.swift index 4d08c1a407ef..5b29c6e99720 100644 --- a/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationsViewController.swift +++ b/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationsViewController.swift @@ -893,7 +893,7 @@ private extension NotificationsViewController { /// Presents a confirmation action sheet for mark all as read action. @objc func showMarkAllAsReadConfirmation() { let title = NSLocalizedString( - "You are about to mark all notifications as read. Are you sure?", + "Mark all %1$@ notifications as read?", comment: "Confirmation title for marking all notifications as read." ) let cancelTitle = NSLocalizedString( @@ -901,11 +901,15 @@ private extension NotificationsViewController { comment: "Cancels the mark all as read action." ) let markAllTitle = NSLocalizedString( - "Mark All As Read", + "Ok", comment: "Marks all notifications as read." ) - let alertController = UIAlertController(title: title, message: nil, preferredStyle: .actionSheet) + let alertController = UIAlertController( + title: String.localizedStringWithFormat(title, filter.confirmationMessageTitle), + message: nil, + preferredStyle: .alert + ) alertController.view.accessibilityIdentifier = "mark-all-as-read-alert" alertController.addCancelActionWithTitle(cancelTitle) @@ -1724,6 +1728,16 @@ private extension NotificationsViewController { } } + var confirmationMessageTitle: String { + switch self { + case .none: return NSLocalizedString("all", comment: "Filter all confirmation tab name") + case .unread: return NSLocalizedString("unread", comment: "Filter unread confirmation tab name") + case .comment: return NSLocalizedString("comment", comment: "Filter comments confirmation tab name") + case .follow: return NSLocalizedString("follow", comment: "Filter follows confirmation tab name") + case .like: return NSLocalizedString("like", comment: "Filter likes confirmation tab name") + } + } + var noResultsTitle: String { switch self { case .none: return NSLocalizedString("No notifications yet", From 7fe20a377d493d74c53661f8cce79b9237f9a075 Mon Sep 17 00:00:00 2001 From: alpavanoglu Date: Tue, 25 Jan 2022 23:37:06 +0100 Subject: [PATCH 060/114] Update for change requests --- .../NotificationsViewController.swift | 32 +++++++++++++------ 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationsViewController.swift b/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationsViewController.swift index 5b29c6e99720..342cf8f4e725 100644 --- a/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationsViewController.swift +++ b/WordPress/Classes/ViewRelated/Notifications/Controllers/NotificationsViewController.swift @@ -892,16 +892,28 @@ private extension NotificationsViewController { /// Presents a confirmation action sheet for mark all as read action. @objc func showMarkAllAsReadConfirmation() { - let title = NSLocalizedString( - "Mark all %1$@ notifications as read?", - comment: "Confirmation title for marking all notifications as read." - ) + let title: String + + switch filter { + case .none: + title = NSLocalizedString( + "Mark all notifications as read?", + comment: "Confirmation title for marking all notifications as read." + ) + + default: + title = NSLocalizedString( + "Mark all %1$@ notifications as read?", + comment: "Confirmation title for marking all notifications under a filter as read. %1$@ is replaced by the filter name." + ) + } + let cancelTitle = NSLocalizedString( "Cancel", comment: "Cancels the mark all as read action." ) let markAllTitle = NSLocalizedString( - "Ok", + "OK", comment: "Marks all notifications as read." ) @@ -1730,11 +1742,11 @@ private extension NotificationsViewController { var confirmationMessageTitle: String { switch self { - case .none: return NSLocalizedString("all", comment: "Filter all confirmation tab name") - case .unread: return NSLocalizedString("unread", comment: "Filter unread confirmation tab name") - case .comment: return NSLocalizedString("comment", comment: "Filter comments confirmation tab name") - case .follow: return NSLocalizedString("follow", comment: "Filter follows confirmation tab name") - case .like: return NSLocalizedString("like", comment: "Filter likes confirmation tab name") + case .none: return "" + case .unread: return NSLocalizedString("unread", comment: "Displayed in the confirmation alert when marking unread notifications as read.") + case .comment: return NSLocalizedString("comment", comment: "Displayed in the confirmation alert when marking comment notifications as read.") + case .follow: return NSLocalizedString("follow", comment: "Displayed in the confirmation alert when marking follow notifications as read.") + case .like: return NSLocalizedString("like", comment: "Displayed in the confirmation alert when marking like notifications as read.") } } From 7fa0d678f89319e903f22db1f3b66ef742c394f0 Mon Sep 17 00:00:00 2001 From: Leandro Alonso Date: Tue, 25 Jan 2022 22:11:20 -0300 Subject: [PATCH 061/114] add: quick actions cell --- ...ogDetailsViewController+QuickActions.swift | 39 +++++++++++++++++++ WordPress/WordPress.xcodeproj/project.pbxproj | 6 +++ 2 files changed, 45 insertions(+) create mode 100644 WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController+QuickActions.swift diff --git a/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController+QuickActions.swift b/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController+QuickActions.swift new file mode 100644 index 000000000000..2138077b2a73 --- /dev/null +++ b/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController+QuickActions.swift @@ -0,0 +1,39 @@ +import UIKit + +extension BlogDetailsViewController { + @objc func quickActionsSectionViewModel() -> BlogDetailsSection { + return BlogDetailsSection(title: nil, + rows: [BlogDetailsRow()], + footerTitle: nil, + category: .quickAction) + } +} + +@objc class QuickActionsCell: UITableViewCell { + private var actionRow: ActionRow! + + func configure(with items: [ActionRow.Item]) { + guard actionRow == nil else { + return + } + + actionRow = ActionRow(items: items) + contentView.addSubview(actionRow) + + setupConstraints() + } + + private func setupConstraints() { + actionRow.translatesAutoresizingMaskIntoConstraints = false + + let widthConstraint = actionRow.widthAnchor.constraint(equalToConstant: 350) + widthConstraint.priority = .defaultHigh + + NSLayoutConstraint.activate([ + actionRow.topAnchor.constraint(equalTo: contentView.topAnchor), + actionRow.bottomAnchor.constraint(equalTo: contentView.bottomAnchor), + actionRow.centerXAnchor.constraint(equalTo: contentView.centerXAnchor), + widthConstraint + ]) + } +} diff --git a/WordPress/WordPress.xcodeproj/project.pbxproj b/WordPress/WordPress.xcodeproj/project.pbxproj index 59fd9802a270..90d4616afa41 100644 --- a/WordPress/WordPress.xcodeproj/project.pbxproj +++ b/WordPress/WordPress.xcodeproj/project.pbxproj @@ -1392,6 +1392,8 @@ 8B24C4E3249A4C3E0005E8A5 /* OfflineReaderWebView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B24C4E2249A4C3E0005E8A5 /* OfflineReaderWebView.swift */; }; 8B25F8DA24B7683A009DD4C9 /* ReaderCSSTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B25F8D924B7683A009DD4C9 /* ReaderCSSTests.swift */; }; 8B260D7E2444FC9D0010F756 /* PostVisibilitySelectorViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B260D7D2444FC9D0010F756 /* PostVisibilitySelectorViewController.swift */; }; + 8B33BC9527A0C14C00DB5985 /* BlogDetailsViewController+QuickActions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B33BC9427A0C14C00DB5985 /* BlogDetailsViewController+QuickActions.swift */; }; + 8B33BC9627A0C14C00DB5985 /* BlogDetailsViewController+QuickActions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B33BC9427A0C14C00DB5985 /* BlogDetailsViewController+QuickActions.swift */; }; 8B36256625A60CCA00D7CCE3 /* BackupListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B36256525A60CCA00D7CCE3 /* BackupListViewController.swift */; }; 8B3626F925A665E500D7CCE3 /* UIApplication+mainWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B3626F825A665E500D7CCE3 /* UIApplication+mainWindow.swift */; }; 8B3DECAB2388506400A459C2 /* SentryStartupEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B3DECAA2388506400A459C2 /* SentryStartupEvent.swift */; }; @@ -6037,6 +6039,7 @@ 8B24C4E2249A4C3E0005E8A5 /* OfflineReaderWebView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OfflineReaderWebView.swift; sourceTree = ""; }; 8B25F8D924B7683A009DD4C9 /* ReaderCSSTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReaderCSSTests.swift; sourceTree = ""; }; 8B260D7D2444FC9D0010F756 /* PostVisibilitySelectorViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PostVisibilitySelectorViewController.swift; sourceTree = ""; }; + 8B33BC9427A0C14C00DB5985 /* BlogDetailsViewController+QuickActions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "BlogDetailsViewController+QuickActions.swift"; sourceTree = ""; }; 8B36256525A60CCA00D7CCE3 /* BackupListViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BackupListViewController.swift; sourceTree = ""; }; 8B3626F825A665E500D7CCE3 /* UIApplication+mainWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIApplication+mainWindow.swift"; sourceTree = ""; }; 8B3DECAA2388506400A459C2 /* SentryStartupEvent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SentryStartupEvent.swift; sourceTree = ""; }; @@ -9209,6 +9212,7 @@ 74989B8B2088E3650054290B /* BlogDetailsViewController+Activity.swift */, 17C1D6CD26711BB2006C8970 /* BlogDetailsViewController+Swift.swift */, 02AC3091226FFFAA0018D23B /* BlogDetailsViewController+DomainCredit.swift */, + 8B33BC9427A0C14C00DB5985 /* BlogDetailsViewController+QuickActions.swift */, 435D10192130C2AB00BB2AA8 /* BlogDetailsViewController+FancyAlerts.swift */, F53FF3A223EA3E45001AD596 /* BlogDetailsViewController+Header.swift */, 02761EBF2270072F009BAF0F /* BlogDetailsViewController+SectionHelpers.swift */, @@ -17601,6 +17605,7 @@ D817799420ABFDB300330998 /* ReaderPostCellActions.swift in Sources */, 402B2A7920ACD7690027C1DC /* ActivityStore.swift in Sources */, E62AFB6A1DC8E593007484FC /* NSAttributedString+WPRichText.swift in Sources */, + 8B33BC9527A0C14C00DB5985 /* BlogDetailsViewController+QuickActions.swift in Sources */, 98812966219CE42A0075FF33 /* StatsTotalRow.swift in Sources */, 46D6114F2555DAED00B0B7BB /* SiteCreationAnalyticsHelper.swift in Sources */, B54866CA1A0D7042004AC79D /* NSAttributedString+Helpers.swift in Sources */, @@ -20548,6 +20553,7 @@ FABB25262602FC2C00C8785C /* String+RegEx.swift in Sources */, 175CC17A27230DC900622FB4 /* Bool+StringRepresentation.swift in Sources */, F1BC842F27035A1800C39993 /* BlogService+Domains.swift in Sources */, + 8B33BC9627A0C14C00DB5985 /* BlogDetailsViewController+QuickActions.swift in Sources */, FABB25272602FC2C00C8785C /* UIImage+Exporters.swift in Sources */, FABB25282602FC2C00C8785C /* PostStatsTitleCell.swift in Sources */, FABB25292602FC2C00C8785C /* CommentService.m in Sources */, From 78e9952fe1002731222d4094cd0ea2432e7e7f69 Mon Sep 17 00:00:00 2001 From: Leandro Alonso Date: Tue, 25 Jan 2022 22:11:35 -0300 Subject: [PATCH 062/114] add: method to configure the quick actions cell --- .../Blog Details/BlogDetailsViewController+Header.swift | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController+Header.swift b/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController+Header.swift index f1a30cfc2bf9..a38c31ad78c8 100644 --- a/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController+Header.swift +++ b/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController+Header.swift @@ -9,6 +9,12 @@ extension BlogDetailsViewController { return BlogDetailHeaderView(items: actionItems) } + @objc func configureQuickActions(cell: QuickActionsCell) { + let actionItems = createActionItems() + + cell.configure(with: actionItems) + } + @objc func showSiteTitleSettings() { let hint = blog.isAdmin ? SiteTitleStrings.siteTitleHint : SiteTitleStrings.notAnAdminHint From 8516a606b0c93ba49b3789eb0cd7745d4b95b23d Mon Sep 17 00:00:00 2001 From: Leandro Alonso Date: Tue, 25 Jan 2022 22:12:09 -0300 Subject: [PATCH 063/114] add: quick actions to the table view and remove from the header --- .../Blog Details/BlogDetailsViewController.h | 3 +- .../Blog Details/BlogDetailsViewController.m | 18 +++++++---- .../Detail Header/BlogDetailHeaderView.swift | 32 ++----------------- 3 files changed, 17 insertions(+), 36 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController.h b/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController.h index da8cc15dafff..425c2352bc92 100644 --- a/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController.h +++ b/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController.h @@ -15,7 +15,8 @@ typedef NS_ENUM(NSUInteger, BlogDetailsSectionCategory) { BlogDetailsSectionCategoryPersonalize, BlogDetailsSectionCategoryConfigure, BlogDetailsSectionCategoryExternal, - BlogDetailsSectionCategoryRemoveSite + BlogDetailsSectionCategoryRemoveSite, + BlogDetailsSectionCategoryQuickAction }; typedef NS_ENUM(NSUInteger, BlogDetailsSubsection) { diff --git a/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController.m b/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController.m index dbfe133f3cae..27560ea255d0 100644 --- a/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController.m +++ b/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController.m @@ -22,6 +22,7 @@ static NSString *const BlogDetailsPlanCellIdentifier = @"BlogDetailsPlanCell"; static NSString *const BlogDetailsSettingsCellIdentifier = @"BlogDetailsSettingsCell"; static NSString *const BlogDetailsRemoveSiteCellIdentifier = @"BlogDetailsRemoveSiteCell"; +static NSString *const BlogDetailsQuickActionsCellIdentifier = @"BlogDetailsQuickActionsCell"; static NSString *const BlogDetailsSectionHeaderViewIdentifier = @"BlogDetailsSectionHeaderView"; static NSString *const QuickStartHeaderViewNibName = @"BlogDetailsSectionHeaderView"; static NSString *const QuickStartListTitleCellNibName = @"QuickStartListTitleCell"; @@ -346,6 +347,7 @@ - (void)viewDidLoad [self.tableView registerClass:[WPTableViewCellValue1 class] forCellReuseIdentifier:BlogDetailsPlanCellIdentifier]; [self.tableView registerClass:[WPTableViewCellValue1 class] forCellReuseIdentifier:BlogDetailsSettingsCellIdentifier]; [self.tableView registerClass:[WPTableViewCell class] forCellReuseIdentifier:BlogDetailsRemoveSiteCellIdentifier]; + [self.tableView registerClass:[QuickActionsCell class] forCellReuseIdentifier:BlogDetailsQuickActionsCellIdentifier]; UINib *qsHeaderViewNib = [UINib nibWithNibName:QuickStartHeaderViewNibName bundle:[NSBundle bundleForClass:[QuickStartListTitleCell class]]]; [self.tableView registerNib:qsHeaderViewNib forHeaderFooterViewReuseIdentifier:BlogDetailsSectionHeaderViewIdentifier]; UINib *qsTitleCellNib = [UINib nibWithNibName:QuickStartListTitleCellNibName bundle:[NSBundle bundleForClass:[QuickStartListTitleCell class]]]; @@ -751,6 +753,7 @@ - (void)configureTableViewData { NSMutableArray *marr = [NSMutableArray array]; + [marr addObject:[self quickActionsSectionViewModel]]; if ([DomainCreditEligibilityChecker canRedeemDomainCreditWithBlog:self.blog]) { if (!self.hasLoggedDomainCreditPromptShownEvent) { [WPAnalytics track:WPAnalyticsStatDomainCreditPromptShown]; @@ -1422,6 +1425,13 @@ - (void)configureCell:(UITableViewCell *)cell atIndexPath:(NSIndexPath *)indexPa - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { BlogDetailsSection *section = [self.tableSections objectAtIndex:indexPath.section]; + + if (section.category == BlogDetailsSectionCategoryQuickAction) { + QuickActionsCell *cell = [tableView dequeueReusableCellWithIdentifier:BlogDetailsQuickActionsCellIdentifier]; + [self configureQuickActionsWithCell: cell]; + return cell; + } + BlogDetailsRow *row = [section.rows objectAtIndex:indexPath.row]; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:row.identifier]; cell.accessibilityHint = row.accessibilityHint; @@ -1483,12 +1493,8 @@ - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger BlogDetailsSection *section = [self.tableSections objectAtIndex:sectionNum]; if (section.showQuickStartMenu) { return [self quickStartHeaderWithTitle:section.title]; - } else if (sectionNum == 0 && [self.blog supports:BlogFeatureJetpackSettings]) { - // Jetpack header shouldn't have any padding - BlogDetailsSectionHeaderView *headerView = (BlogDetailsSectionHeaderView *)[tableView dequeueReusableHeaderFooterViewWithIdentifier:BlogDetailsSectionHeaderViewIdentifier]; - headerView.ellipsisButton.hidden = YES; - headerView.title = @""; - return headerView; + } else if (sectionNum == 0) { + return nil; } return nil; diff --git a/WordPress/Classes/ViewRelated/Blog/Blog Details/Detail Header/BlogDetailHeaderView.swift b/WordPress/Classes/ViewRelated/Blog/Blog Details/Detail Header/BlogDetailHeaderView.swift index 2b6938ce9a65..41ae4c4932e0 100644 --- a/WordPress/Classes/ViewRelated/Blog/Blog Details/Detail Header/BlogDetailHeaderView.swift +++ b/WordPress/Classes/ViewRelated/Blog/Blog Details/Detail Header/BlogDetailHeaderView.swift @@ -14,7 +14,6 @@ class BlogDetailHeaderView: UIView { // MARK: - Child Views - private let actionRow: ActionRow private let titleView: TitleView // MARK: - Delegate @@ -104,7 +103,6 @@ class BlogDetailHeaderView: UIView { // MARK: - Initializers required init(items: [ActionRow.Item]) { - actionRow = ActionRow(items: items) titleView = TitleView(frame: .zero) super.init(frame: .zero) @@ -134,10 +132,6 @@ class BlogDetailHeaderView: UIView { addSubview(titleView) - if !FeatureFlag.mySiteDashboard.enabled { - addSubview(actionRow) - } - let showsActionRow = items.count > 0 setupConstraintsForChildViews(showsActionRow) } @@ -147,37 +141,17 @@ class BlogDetailHeaderView: UIView { private var topActionRowConstraint: NSLayoutConstraint? private func setupConstraintsForChildViews(_ showsActionRow: Bool) { - var constraints = constraintsForTitleView() - - if !FeatureFlag.mySiteDashboard.enabled { - constraints += constraintsForActionRow(showsActionRow) - } + let constraints = constraintsForTitleView() NSLayoutConstraint.activate(constraints) } - private func constraintsForActionRow(_ showsActionRow: Bool) -> [NSLayoutConstraint] { - let widthConstraint = actionRow.widthAnchor.constraint(equalToConstant: LayoutSpacing.maxButtonWidth) - widthConstraint.priority = .defaultHigh - - let topActionRowConstraint = actionRow.topAnchor.constraint(equalTo: titleView.bottomAnchor, constant: LayoutSpacing.betweenTitleViewAndActionRow(showsActionRow)) - self.topActionRowConstraint = topActionRowConstraint - - return [ - topActionRowConstraint, - actionRow.bottomAnchor.constraint(equalTo: bottomAnchor, constant: -LayoutSpacing.belowActionRow), - actionRow.leadingAnchor.constraint(greaterThanOrEqualTo: titleView.leadingAnchor), - actionRow.trailingAnchor.constraint(lessThanOrEqualTo: titleView.trailingAnchor), - actionRow.centerXAnchor.constraint(equalTo: centerXAnchor), - widthConstraint - ] - } - private func constraintsForTitleView() -> [NSLayoutConstraint] { var constraints = [ titleView.topAnchor.constraint(equalTo: topAnchor, constant: LayoutSpacing.top), titleView.leadingAnchor.constraint(equalTo: safeAreaLayoutGuide.leadingAnchor, constant: LayoutSpacing.atSides), - titleView.trailingAnchor.constraint(equalTo: safeAreaLayoutGuide.trailingAnchor, constant: -LayoutSpacing.atSides) + titleView.trailingAnchor.constraint(equalTo: safeAreaLayoutGuide.trailingAnchor, constant: -LayoutSpacing.atSides), + titleView.bottomAnchor.constraint(equalTo: bottomAnchor) ] if FeatureFlag.mySiteDashboard.enabled { From 9e838b886344c6d949866ea9b0dff99131273fe5 Mon Sep 17 00:00:00 2001 From: Leandro Alonso Date: Tue, 25 Jan 2022 22:12:22 -0300 Subject: [PATCH 064/114] refactor: action row style --- .../Blog/Blog Details/Detail Header/ActionRow.swift | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Blog/Blog Details/Detail Header/ActionRow.swift b/WordPress/Classes/ViewRelated/Blog/Blog Details/Detail Header/ActionRow.swift index 9c07f6632aea..73b80d16b196 100644 --- a/WordPress/Classes/ViewRelated/Blog/Blog Details/Detail Header/ActionRow.swift +++ b/WordPress/Classes/ViewRelated/Blog/Blog Details/Detail Header/ActionRow.swift @@ -73,6 +73,7 @@ class ActionRow: UIStackView { enum Constants { static let minimumSpacing: CGFloat = 8 + static let margins = UIEdgeInsets(top: 16, left: 16, bottom: 16, right: 16) } struct Item { @@ -94,11 +95,11 @@ class ActionRow: UIStackView { translatesAutoresizingMaskIntoConstraints = false refreshStackViewVisibility() - backgroundColor = .appBarBackground + backgroundColor = .listForeground layer.cornerRadius = 10 - layoutMargins = UIEdgeInsets.init(top: 16, left: 16, bottom: 16, right: 16) + layoutMargins = Constants.margins isLayoutMarginsRelativeArrangement = true } From d1524249185a63976c43332e5271cce79c3f8a0b Mon Sep 17 00:00:00 2001 From: Leandro Alonso Date: Tue, 25 Jan 2022 22:21:23 -0300 Subject: [PATCH 065/114] fix: quick actions constraints --- .../Blog Details/BlogDetailsViewController+QuickActions.swift | 2 ++ 1 file changed, 2 insertions(+) diff --git a/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController+QuickActions.swift b/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController+QuickActions.swift index 2138077b2a73..e991f4727c49 100644 --- a/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController+QuickActions.swift +++ b/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController+QuickActions.swift @@ -32,6 +32,8 @@ extension BlogDetailsViewController { NSLayoutConstraint.activate([ actionRow.topAnchor.constraint(equalTo: contentView.topAnchor), actionRow.bottomAnchor.constraint(equalTo: contentView.bottomAnchor), + actionRow.leadingAnchor.constraint(greaterThanOrEqualTo: contentView.leadingAnchor), + actionRow.trailingAnchor.constraint(lessThanOrEqualTo: contentView.trailingAnchor), actionRow.centerXAnchor.constraint(equalTo: contentView.centerXAnchor), widthConstraint ]) From 1d0f09b52b1d6b8add96a1bdc6db630013999fa2 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Tue, 25 Jan 2022 10:46:57 +0100 Subject: [PATCH 066/114] Point Kit and Tracks pods to WIP version using UIDeviceIdentifier 2.0.0 Notice the `TracksSetLoggingLevel` call deletion. That method is no longer available and the whole CocoaLumberjack dependency, which that code hit, has been removed in 0.10.0. See https://github.com/Automattic/Automattic-Tracks-iOS/commit/aaf79e26967635a1732fa2f2d480e060e000420f --- Podfile | 6 ++-- Podfile.lock | 31 ++++++++++--------- .../Classes/System/WordPressAppDelegate.swift | 1 - 3 files changed, 20 insertions(+), 18 deletions(-) diff --git a/Podfile b/Podfile index 5463e772707a..3616cac494bf 100644 --- a/Podfile +++ b/Podfile @@ -47,7 +47,7 @@ def wordpress_ui end def wordpress_kit - pod 'WordPressKit', '~> 4.46.0' + pod 'WordPressKit', '~> 4.47.0-beta.1' # pod 'WordPressKit', :git => 'https://github.com/wordpress-mobile/WordPressKit-iOS.git', :tag => '' # pod 'WordPressKit', :git => 'https://github.com/wordpress-mobile/WordPressKit-iOS.git', :branch => '' # pod 'WordPressKit', :git => 'https://github.com/wordpress-mobile/WordPressKit-iOS.git', :commit => '' @@ -202,9 +202,9 @@ abstract_target 'Apps' do # Production - pod 'Automattic-Tracks-iOS', '~> 0.9.1' + # pod 'Automattic-Tracks-iOS', '~> 0.9.1' # While in PR - # pod 'Automattic-Tracks-iOS', :git => 'https://github.com/Automattic/Automattic-Tracks-iOS.git', :branch => '' + pod 'Automattic-Tracks-iOS', :git => 'https://github.com/Automattic/Automattic-Tracks-iOS.git', :branch => 'uideviceidentifier-upgrade' # Local Development #pod 'Automattic-Tracks-iOS', :path => '~/Projects/Automattic-Tracks-iOS' diff --git a/Podfile.lock b/Podfile.lock index c531a30c438a..f942c0d4ef05 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -20,12 +20,10 @@ PODS: - AppCenter/Core - AppCenter/Distribute (4.3.0): - AppCenter/Core - - Automattic-Tracks-iOS (0.9.1): - - CocoaLumberjack (~> 3) - - Reachability (~> 3) + - Automattic-Tracks-iOS (0.10.1): - Sentry (~> 6) - Sodium (>= 0.9.1) - - UIDeviceIdentifier (~> 1) + - UIDeviceIdentifier (~> 2.0) - boost (1.76.0) - BVLinearGradient (2.5.6-wp-2): - React-Core @@ -450,7 +448,7 @@ PODS: - Sodium (0.9.1) - Starscream (3.0.6) - SVProgressHUD (2.2.5) - - UIDeviceIdentifier (1.7.1) + - UIDeviceIdentifier (2.0.0) - WordPress-Aztec-iOS (1.19.7) - WordPress-Editor-iOS (1.19.7): - WordPress-Aztec-iOS (= 1.19.7) @@ -465,11 +463,11 @@ PODS: - WordPressKit (~> 4.18-beta) - WordPressShared (~> 1.12-beta) - WordPressUI (~> 1.7-beta) - - WordPressKit (4.46.0): + - WordPressKit (4.47.0-beta.1): - Alamofire (~> 4.8.0) - CocoaLumberjack (~> 3.4) - NSObject-SafeExpectations (= 0.0.4) - - UIDeviceIdentifier (~> 1.4) + - UIDeviceIdentifier (~> 2.0) - WordPressShared (~> 1.15-beta) - wpxmlrpc (~> 0.9) - WordPressMocks (0.0.15) @@ -502,7 +500,7 @@ DEPENDENCIES: - AMScrollingNavbar (= 5.6.0) - AppCenter (~> 4.1) - AppCenter/Distribute (~> 4.1) - - Automattic-Tracks-iOS (~> 0.9.1) + - Automattic-Tracks-iOS (from `https://github.com/Automattic/Automattic-Tracks-iOS.git`, branch `uideviceidentifier-upgrade`) - boost (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.70.0/third-party-podspecs/boost.podspec.json`) - BVLinearGradient (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.70.0/third-party-podspecs/BVLinearGradient.podspec.json`) - Charts (~> 3.2.2) @@ -569,7 +567,7 @@ DEPENDENCIES: - SVProgressHUD (= 2.2.5) - WordPress-Editor-iOS (~> 1.19.7) - WordPressAuthenticator (~> 1.43.0) - - WordPressKit (~> 4.46.0) + - WordPressKit (~> 4.47.0-beta.1) - WordPressMocks (~> 0.0.15) - WordPressShared (~> 1.17.0) - WordPressUI (~> 1.12.3) @@ -588,7 +586,6 @@ SPEC REPOS: - AMScrollingNavbar - AppAuth - AppCenter - - Automattic-Tracks-iOS - Charts - CocoaLumberjack - CropViewController @@ -635,6 +632,9 @@ SPEC REPOS: - ZIPFoundation EXTERNAL SOURCES: + Automattic-Tracks-iOS: + :branch: uideviceidentifier-upgrade + :git: https://github.com/Automattic/Automattic-Tracks-iOS.git boost: :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.70.0/third-party-podspecs/boost.podspec.json BVLinearGradient: @@ -736,6 +736,9 @@ EXTERNAL SOURCES: :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.70.0/third-party-podspecs/Yoga.podspec.json CHECKOUT OPTIONS: + Automattic-Tracks-iOS: + :commit: 101f150e58589e50e665606c69aad8378b74b292 + :git: https://github.com/Automattic/Automattic-Tracks-iOS.git FSInteractiveMap: :git: https://github.com/wordpress-mobile/FSInteractiveMap.git :tag: 0.2.0 @@ -755,7 +758,7 @@ SPEC CHECKSUMS: AMScrollingNavbar: cf0ec5a5ee659d76ba2509f630bf14fba7e16dc3 AppAuth: 31bcec809a638d7bd2f86ea8a52bd45f6e81e7c7 AppCenter: 883369ab78427b0561c688158d689dfe1f993ea9 - Automattic-Tracks-iOS: f5a6188ad8d00680748111466beabb0aea11f856 + Automattic-Tracks-iOS: e8910ea6d42aee000d3241a1c0e055dec6352929 boost: 32a63928ef0a5bf8b60f6b930c8864113fa28779 BVLinearGradient: 9373b32b8f749c00fe59e3482b45091eeacec08b Charts: f69cf0518b6d1d62608ca504248f1bbe0b6ae77e @@ -829,11 +832,11 @@ SPEC CHECKSUMS: Sodium: 23d11554ecd556196d313cf6130d406dfe7ac6da Starscream: ef3ece99d765eeccb67de105bfa143f929026cf5 SVProgressHUD: 1428aafac632c1f86f62aa4243ec12008d7a51d6 - UIDeviceIdentifier: d0fee204f467dacf8808b7ac14ce43affeb271a5 + UIDeviceIdentifier: af4e11e25a2ea670078e2bd677bb0e8144f9f063 WordPress-Aztec-iOS: 144f124148079084860368dfd27cb96e0952853e WordPress-Editor-iOS: 20551d5a5e51f29832064f08faaaae8e1da7e1e2 WordPressAuthenticator: e4a43745a647e4dc4b35d21b1353bc4f07f9f3c9 - WordPressKit: 67cc1b0bda0d114c806a631ad726027d535d28a8 + WordPressKit: 375f54b3b27bf37f8fc5ed444afd0507fe48a2c7 WordPressMocks: 6b52b0764d9939408151367dd9c6e8a910877f4d WordPressShared: a4b0308a6345d4dda20c8f7ad9317df4246b4a00 WordPressUI: 45591178e843ecb82e65e868ec766148befe9f9f @@ -849,6 +852,6 @@ SPEC CHECKSUMS: ZendeskSupportSDK: 3a8e508ab1d9dd22dc038df6c694466414e037ba ZIPFoundation: e27423c004a5a1410c15933407747374e7c6cb6e -PODFILE CHECKSUM: beb884dd6980a8f4ff8ba7753cddc4a9206c9da5 +PODFILE CHECKSUM: 78b6e4992381fb7c19309a00c221a3e2632d519e COCOAPODS: 1.11.2 diff --git a/WordPress/Classes/System/WordPressAppDelegate.swift b/WordPress/Classes/System/WordPressAppDelegate.swift index 7e732be8b715..1196044d25a4 100644 --- a/WordPress/Classes/System/WordPressAppDelegate.swift +++ b/WordPress/Classes/System/WordPressAppDelegate.swift @@ -700,7 +700,6 @@ extension WordPressAppDelegate { @objc class func setLogLevel(_ level: DDLogLevel) { WPSharedSetLoggingLevel(level) - TracksSetLoggingLevel(level) WPAuthenticatorSetLoggingLevel(level) } } From 7c7278050cd7f6d2cfa2b364fe8671206852db92 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Tue, 25 Jan 2022 21:57:51 +0100 Subject: [PATCH 067/114] Add new delegate for `TracksLogging` Required as of 0.10.0 to customize logging. For the moment, it simply calls the CocoaLumberjack log method matching the given level. See https://github.com/wordpress-mobile/WordPress-iOS/pull/17810/files#r792101456 --- .../Classes/System/WordPressAppDelegate.swift | 4 +++ .../Utility/Logging/TracksLogger.swift | 25 +++++++++++++++++++ WordPress/WordPress.xcodeproj/project.pbxproj | 6 +++++ 3 files changed, 35 insertions(+) create mode 100644 WordPress/Classes/Utility/Logging/TracksLogger.swift diff --git a/WordPress/Classes/System/WordPressAppDelegate.swift b/WordPress/Classes/System/WordPressAppDelegate.swift index 1196044d25a4..28491a340de8 100644 --- a/WordPress/Classes/System/WordPressAppDelegate.swift +++ b/WordPress/Classes/System/WordPressAppDelegate.swift @@ -70,6 +70,8 @@ class WordPressAppDelegate: UIResponder, UIApplicationDelegate { private let loggingStack = WPLoggingStack() + private lazy var tracksLogger = TracksLogger() + /// Access the crash logging type class var crashLogging: CrashLogging? { shared?.loggingStack.crashLogging @@ -275,6 +277,8 @@ class WordPressAppDelegate: UIResponder, UIApplicationDelegate { configureAppCenterSDK() configureAppRatingUtility() + TracksLogging.delegate = tracksLogger + printDebugLaunchInfoWithLaunchOptions(launchOptions) toggleExtraDebuggingIfNeeded() diff --git a/WordPress/Classes/Utility/Logging/TracksLogger.swift b/WordPress/Classes/Utility/Logging/TracksLogger.swift new file mode 100644 index 000000000000..c9bbb29a5edb --- /dev/null +++ b/WordPress/Classes/Utility/Logging/TracksLogger.swift @@ -0,0 +1,25 @@ +import CocoaLumberjack +import AutomatticTracks + +class TracksLogger: NSObject, TracksLoggingDelegate { + + func logError(_ str: String) { + DDLogError(str) + } + + func logWarning(_ str: String) { + DDLogWarn(str) + } + + func logInfo(_ str: String) { + DDLogInfo(str) + } + + func logDebug(_ str: String) { + DDLogDebug(str) + } + + func logVerbose(_ str: String) { + DDLogVerbose(str) + } +} diff --git a/WordPress/WordPress.xcodeproj/project.pbxproj b/WordPress/WordPress.xcodeproj/project.pbxproj index 0af5bc44f838..b1b0316e0650 100644 --- a/WordPress/WordPress.xcodeproj/project.pbxproj +++ b/WordPress/WordPress.xcodeproj/project.pbxproj @@ -521,6 +521,8 @@ 3F2F856326FAF612000FCDA5 /* EditorGutenbergTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC2BB0CF228ACF710034F9AB /* EditorGutenbergTests.swift */; }; 3F3087C424EDB7040087B548 /* AnnouncementCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3F3087C324EDB7040087B548 /* AnnouncementCell.swift */; }; 3F30E50923FB362700225013 /* WPTabBarController+MeNavigation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3F30E50823FB362700225013 /* WPTabBarController+MeNavigation.swift */; }; + 3F39C93527A09927001EC300 /* TracksLogger.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3F39C93427A09927001EC300 /* TracksLogger.swift */; }; + 3F39C93627A09927001EC300 /* TracksLogger.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3F39C93427A09927001EC300 /* TracksLogger.swift */; }; 3F3CA65025D3003C00642A89 /* StatsWidgetsStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3F3CA64F25D3003C00642A89 /* StatsWidgetsStore.swift */; }; 3F3D854B251E6418001CA4D2 /* AnnouncementsDataStoreTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3F3D854A251E6418001CA4D2 /* AnnouncementsDataStoreTests.swift */; }; 3F3DD0AF26FCDA3100F5F121 /* PresentationButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3F3DD0AE26FCDA3100F5F121 /* PresentationButton.swift */; }; @@ -5171,6 +5173,7 @@ 3F2F0C15256C6B2C003351C7 /* StatsWidgetsService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StatsWidgetsService.swift; sourceTree = ""; }; 3F3087C324EDB7040087B548 /* AnnouncementCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AnnouncementCell.swift; sourceTree = ""; }; 3F30E50823FB362700225013 /* WPTabBarController+MeNavigation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "WPTabBarController+MeNavigation.swift"; sourceTree = ""; }; + 3F39C93427A09927001EC300 /* TracksLogger.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TracksLogger.swift; sourceTree = ""; }; 3F3CA64F25D3003C00642A89 /* StatsWidgetsStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StatsWidgetsStore.swift; sourceTree = ""; }; 3F3D854A251E6418001CA4D2 /* AnnouncementsDataStoreTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AnnouncementsDataStoreTests.swift; sourceTree = ""; }; 3F3DD0AE26FCDA3100F5F121 /* PresentationButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PresentationButton.swift; sourceTree = ""; }; @@ -10015,6 +10018,7 @@ F93735F022D534FE00A3C312 /* LoggingURLRedactor.swift */, 986CC4D120E1B2F6004F300E /* CustomLogFormatter.swift */, 8B3DECAA2388506400A459C2 /* SentryStartupEvent.swift */, + 3F39C93427A09927001EC300 /* TracksLogger.swift */, ); path = Logging; sourceTree = ""; @@ -17303,6 +17307,7 @@ B532D4EC199D4357006E4DF6 /* NoteBlockTextTableViewCell.swift in Sources */, B52F8CD81B43260C00D36025 /* NotificationSettingStreamsViewController.swift in Sources */, 464688D8255C71D200ECA61C /* SiteDesignPreviewViewController.swift in Sources */, + 3F39C93527A09927001EC300 /* TracksLogger.swift in Sources */, 3F5B3EB123A851480060FF1F /* ReaderReblogFormatter.swift in Sources */, E1AB5A071E0BF17500574B4E /* Array.swift in Sources */, D858F2FD20E1F09F007E8A1C /* NotificationActionParser.swift in Sources */, @@ -20058,6 +20063,7 @@ C79C307F26EA970800E88514 /* ReferrerDetailsSpamActionRow.swift in Sources */, FABB23662602FC2C00C8785C /* NotificationCommentRange.swift in Sources */, FABB23672602FC2C00C8785C /* NotificationAction.swift in Sources */, + 3F39C93627A09927001EC300 /* TracksLogger.swift in Sources */, FABB23682602FC2C00C8785C /* NSManagedObject.swift in Sources */, FABB23692602FC2C00C8785C /* ExportableAsset.swift in Sources */, FABB236A2602FC2C00C8785C /* PlanListViewModel.swift in Sources */, From ddaa3f62f0f887b8b64497c6281f013112c2ae5e Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Wed, 26 Jan 2022 11:39:59 +0100 Subject: [PATCH 068/114] Point tracks from WIP branch to latest 0.11.0 release --- Podfile | 4 ++-- Podfile.lock | 15 +++++---------- 2 files changed, 7 insertions(+), 12 deletions(-) diff --git a/Podfile b/Podfile index 3616cac494bf..7d40158b7685 100644 --- a/Podfile +++ b/Podfile @@ -202,9 +202,9 @@ abstract_target 'Apps' do # Production - # pod 'Automattic-Tracks-iOS', '~> 0.9.1' + pod 'Automattic-Tracks-iOS', '~> 0.11.0' # While in PR - pod 'Automattic-Tracks-iOS', :git => 'https://github.com/Automattic/Automattic-Tracks-iOS.git', :branch => 'uideviceidentifier-upgrade' + # pod 'Automattic-Tracks-iOS', :git => 'https://github.com/Automattic/Automattic-Tracks-iOS.git', :branch => '' # Local Development #pod 'Automattic-Tracks-iOS', :path => '~/Projects/Automattic-Tracks-iOS' diff --git a/Podfile.lock b/Podfile.lock index f942c0d4ef05..dfa994806292 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -20,7 +20,7 @@ PODS: - AppCenter/Core - AppCenter/Distribute (4.3.0): - AppCenter/Core - - Automattic-Tracks-iOS (0.10.1): + - Automattic-Tracks-iOS (0.11.0): - Sentry (~> 6) - Sodium (>= 0.9.1) - UIDeviceIdentifier (~> 2.0) @@ -500,7 +500,7 @@ DEPENDENCIES: - AMScrollingNavbar (= 5.6.0) - AppCenter (~> 4.1) - AppCenter/Distribute (~> 4.1) - - Automattic-Tracks-iOS (from `https://github.com/Automattic/Automattic-Tracks-iOS.git`, branch `uideviceidentifier-upgrade`) + - Automattic-Tracks-iOS (~> 0.11.0) - boost (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.70.0/third-party-podspecs/boost.podspec.json`) - BVLinearGradient (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.70.0/third-party-podspecs/BVLinearGradient.podspec.json`) - Charts (~> 3.2.2) @@ -586,6 +586,7 @@ SPEC REPOS: - AMScrollingNavbar - AppAuth - AppCenter + - Automattic-Tracks-iOS - Charts - CocoaLumberjack - CropViewController @@ -632,9 +633,6 @@ SPEC REPOS: - ZIPFoundation EXTERNAL SOURCES: - Automattic-Tracks-iOS: - :branch: uideviceidentifier-upgrade - :git: https://github.com/Automattic/Automattic-Tracks-iOS.git boost: :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.70.0/third-party-podspecs/boost.podspec.json BVLinearGradient: @@ -736,9 +734,6 @@ EXTERNAL SOURCES: :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.70.0/third-party-podspecs/Yoga.podspec.json CHECKOUT OPTIONS: - Automattic-Tracks-iOS: - :commit: 101f150e58589e50e665606c69aad8378b74b292 - :git: https://github.com/Automattic/Automattic-Tracks-iOS.git FSInteractiveMap: :git: https://github.com/wordpress-mobile/FSInteractiveMap.git :tag: 0.2.0 @@ -758,7 +753,7 @@ SPEC CHECKSUMS: AMScrollingNavbar: cf0ec5a5ee659d76ba2509f630bf14fba7e16dc3 AppAuth: 31bcec809a638d7bd2f86ea8a52bd45f6e81e7c7 AppCenter: 883369ab78427b0561c688158d689dfe1f993ea9 - Automattic-Tracks-iOS: e8910ea6d42aee000d3241a1c0e055dec6352929 + Automattic-Tracks-iOS: 061303f897938044f11a9d97d5f8d6426ee7ff56 boost: 32a63928ef0a5bf8b60f6b930c8864113fa28779 BVLinearGradient: 9373b32b8f749c00fe59e3482b45091eeacec08b Charts: f69cf0518b6d1d62608ca504248f1bbe0b6ae77e @@ -852,6 +847,6 @@ SPEC CHECKSUMS: ZendeskSupportSDK: 3a8e508ab1d9dd22dc038df6c694466414e037ba ZIPFoundation: e27423c004a5a1410c15933407747374e7c6cb6e -PODFILE CHECKSUM: 78b6e4992381fb7c19309a00c221a3e2632d519e +PODFILE CHECKSUM: b10963dbcbffa2add515936104b784dcc64f8ad3 COCOAPODS: 1.11.2 From 03ea015dd79f86377ecffc1ca782bacae9cd05ca Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Wed, 26 Jan 2022 12:40:35 +0100 Subject: [PATCH 069/114] Update translations --- .../Resources/ar.lproj/Localizable.strings | 151 +++++++++++---- .../Resources/bg.lproj/Localizable.strings | 151 +++++++++++---- .../Resources/cs.lproj/Localizable.strings | 153 +++++++++++---- .../Resources/cy.lproj/Localizable.strings | 151 +++++++++++---- .../Resources/da.lproj/Localizable.strings | 151 +++++++++++---- .../Resources/de.lproj/Localizable.strings | 153 +++++++++++---- .../Resources/en-AU.lproj/Localizable.strings | 151 +++++++++++---- .../Resources/en-CA.lproj/Localizable.strings | 151 +++++++++++---- .../Resources/en-GB.lproj/Localizable.strings | 153 +++++++++++---- .../Resources/es.lproj/Localizable.strings | 153 +++++++++++---- .../Resources/fr.lproj/Localizable.strings | 153 +++++++++++---- .../Resources/he.lproj/Localizable.strings | 151 +++++++++++---- .../Resources/hr.lproj/Localizable.strings | 151 +++++++++++---- .../Resources/hu.lproj/Localizable.strings | 151 +++++++++++---- .../Resources/id.lproj/Localizable.strings | 151 +++++++++++---- .../Resources/is.lproj/Localizable.strings | 151 +++++++++++---- .../Resources/it.lproj/Localizable.strings | 151 +++++++++++---- .../Resources/ja.lproj/Localizable.strings | 151 +++++++++++---- .../Resources/ko.lproj/Localizable.strings | 151 +++++++++++---- .../Resources/nb.lproj/Localizable.strings | 151 +++++++++++---- .../Resources/nl.lproj/Localizable.strings | 153 +++++++++++---- .../Resources/pl.lproj/Localizable.strings | 151 +++++++++++---- .../Resources/pt-BR.lproj/Localizable.strings | 151 +++++++++++---- .../Resources/pt.lproj/Localizable.strings | 151 +++++++++++---- .../Resources/ro.lproj/Localizable.strings | 153 +++++++++++---- .../Resources/ru.lproj/Localizable.strings | 153 +++++++++++---- .../Resources/sk.lproj/Localizable.strings | 151 +++++++++++---- .../Resources/sq.lproj/Localizable.strings | 181 ++++++++++++------ .../Resources/sv.lproj/Localizable.strings | 153 +++++++++++---- .../Resources/th.lproj/Localizable.strings | 151 +++++++++++---- .../Resources/tr.lproj/Localizable.strings | 153 +++++++++++---- .../zh-Hans.lproj/Localizable.strings | 151 +++++++++++---- .../zh-Hant.lproj/Localizable.strings | 151 +++++++++++---- 33 files changed, 3688 insertions(+), 1345 deletions(-) diff --git a/WordPress/Resources/ar.lproj/Localizable.strings b/WordPress/Resources/ar.lproj/Localizable.strings index c8aff85b11ea..fa5d764caba0 100644 --- a/WordPress/Resources/ar.lproj/Localizable.strings +++ b/WordPress/Resources/ar.lproj/Localizable.strings @@ -468,7 +468,8 @@ translators: Block name. %s: The localized block name */ /* Label for the Activity Type filter button when there are more than 1 activity type selected */ "Activity Type (%1$d)" = "نوع النشاط (%1$d)"; -/* Remove asset from media picker list */ +/* Accessibility label for add button to add items to the user's media library + Remove asset from media picker list */ "Add" = "إضافة"; /* Action for Media Picker to indicate selection of media. The argument in the string represents the number of elements (as numeric digits) selected */ @@ -564,6 +565,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Add menu item to children" = "إضافة عنصر قائمة للعناصر الفرعية"; +/* Accessibility hint for add button to add items to the user's media library */ +"Add new media" = "Add new media"; + /* Screen reader text for Menus button that adds a new menu to a site. */ "Add new menu" = "إضافة قائمة جديدة"; @@ -704,6 +708,12 @@ translators: Block name. %s: The localized block name */ /* Title of a row displayed on the debug screen used to indicate whether crash logs should be forced to send, even if they otherwise wouldn't */ "Always Send Crash Logs" = "إرسال سجلات الأعطال دومًا"; +/* A failure reason for when an error HTTP status code was returned from the site, with the specific error code. */ +"An HTTP error code %i was returned." = "An HTTP error code %i was returned."; + +/* A failure reason for when an error HTTP status code was returned from the site. */ +"An HTTP error code was returned." = "An HTTP error code was returned."; + /* Error message when loading failed because there's no connection */ "An active internet connection is required" = "يلزم وجود اتصال بالإنترنت نشط"; @@ -756,6 +766,9 @@ translators: Block name. %s: The localized block name */ /* Text displayed when a stat section failed to load. */ "An error occurred." = "حدث خطأ."; +/* A failure reason for when the error that occured wasn't able to be determined. */ +"An unknown error occurred." = "An unknown error occurred."; + /* Error message shown when a media upload fails for unknown reason and the user should try again. */ "An unknown error occurred. Please try again." = "حدث خطأ غير معروف. يُرجى المحاولة مرة أخرى."; @@ -817,18 +830,9 @@ translators: Block name. %s: The localized block name */ /* Message prompting the user to confirm that they want to disconnect Jetpack from the site. */ "Are you sure you want to disconnect Jetpack from the site?" = "هل تريد بالتأكيد قطع اتصال Jetpack عن هذا الموقع؟"; -/* Message asking for confirmation before marking a comment as spam */ -"Are you sure you want to mark this comment as Spam?" = "هل أنت متأكد من رغبتك في وضع علامة على هذا التعليق كتعليق مزعج؟"; - -/* Message asking for confirmation before marking a comment as trash */ -"Are you sure you want to mark this comment as Trash?" = "هل أنت متأكد من رغبتك في نقل على هذا التعليق إلى سلة المهملات؟"; - /* Message prompting the user to confirm that they want to permanently delete a group of media items. */ "Are you sure you want to permanently delete these items?" = "هل تريد بالتأكيد حذف هذه العناصر نهائيًّا؟"; -/* Message asking for confirmation on comment deletion */ -"Are you sure you want to permanently delete this comment?" = "هل تريد بالتأكيد حذف هذا التعليق نهائيًا؟"; - /* Message prompting the user to confirm that they want to permanently delete a media item. Should match Calypso. */ "Are you sure you want to permanently delete this item?" = "هل تريد بالتأكيد حذف هذا العنصر نهائيًا؟"; @@ -1292,6 +1296,9 @@ translators: Block name. %s: The localized block name */ Main title */ "Change Password" = "تغيير كلمة المرور"; +/* Title of button that takes user to the system Settings section for the app */ +"Change Settings" = "Change Settings"; + /* Title of an alert prompting the user that they are about to change the blog they are posting to. */ "Change Site" = "تغيير الموقع"; @@ -1587,6 +1594,9 @@ translators: Block name. %s: The localized block name */ My First Post */ "Comment on" = "التعليق على"; +/* Message displayed when approving a comment succeeds. */ +"Comment set to approved." = "Comment set to approved."; + /* Message displayed when pending a comment succeeds. */ "Comment set to pending." = "تم تعيين التعليق تحت المراجعة."; @@ -1677,8 +1687,7 @@ translators: Block name. %s: The localized block name */ /* Section title for the configure table section in the blog details screen */ "Configure" = "إعدادات"; -/* Confirm - Verb. Title for Jetpack Restore confirm button. */ +/* Verb. Title for Jetpack Restore confirm button. */ "Confirm" = "تأكيد"; /* Close Account alert title */ @@ -2117,7 +2126,8 @@ translators: Block name. %s: The localized block name */ /* Title for the app appearance setting for dark mode */ "Dark" = "داكن"; -/* Action title. Noun. Opens the user's WordPress.com dashboard in an external browser. */ +/* Action title. Noun. Opens the user's WordPress.com dashboard in an external browser. + Title for dashboard view on the My Site screen */ "Dashboard" = "لوحة التحكم"; /* Title for a threat that includes the number of database rows affected */ @@ -2174,7 +2184,6 @@ translators: Block name. %s: The localized block name */ "Defaults for New Posts" = "الإعدادات الافتراضية للمقالات الجديدة"; /* Delete - Delete button title Delete button title for the warning shown to the user when he refuses to re-login when the authToken is missing. Title for button that permanently deletes a media item (photo / video) Title for button that permanently deletes one or more media items (photos / videos) @@ -2533,7 +2542,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Each block has its own settings. To find them, tap on a block. Its settings will appear on the toolbar at the bottom of the screen." = "لكل مكوِّن الإعدادات الخاصة به. للعثور عليها، أنقر على مكوِّن. ستظهر إعداداته على شريط الأدوات في الجزء السفلي من الشاشة."; -/* Edit the post. +/* Accessibility label for edit button to enable multi selection mode in the user's media library + Edit the post. Editing GIF alert default action button. Edits a Comment Edits the comment @@ -2740,6 +2750,9 @@ translators: Block name. %s: The localized block name */ /* Secondary message shown when there are no domains that match the user entered text. */ "Enter different words above and we'll look for an address that matches it." = "أدخل كلمات مختلفة أعلاه وسنبحث عن عنوان يطابقها."; +/* Accessibility hint for edit button to enable multi selection mode in the user's media library */ +"Enter edit mode to enable multi select to delete" = "Enter edit mode to enable multi select to delete"; + /* (placeholder) Help enter WordPress password Placeholder of a field to type a password to protect the post. */ "Enter password" = "أدخل كلمة المرور"; @@ -2790,9 +2803,6 @@ translators: Block name. %s: The localized block name */ /* There was an error activating a plugin, placeholder is the plugin name */ "Error activating %@." = "حدث خطأ أثناء تنشيط %@."; -/* Message shown when approving a Comment fails. */ -"Error approving comment" = "خطأ في الموافقة على التعليق"; - /* Message displayed when approving a comment fails. */ "Error approving comment." = "خطأ في الموافقة على التعليق."; @@ -2802,9 +2812,6 @@ translators: Block name. %s: The localized block name */ /* There was an error deactivating a plugin, placeholder is the plugin name */ "Error deactivating %@." = "حدث خطأ أثناء إلغاء تنشيط %@."; -/* Message shown when deleting a Comment fails. */ -"Error deleting comment" = "خطأ في حذف التعليق"; - /* Message displayed when deleting a comment fails. */ "Error deleting comment." = "خطأ في حذف التعليق."; @@ -2832,9 +2839,6 @@ translators: Block name. %s: The localized block name */ /* Messaged displayed when fetching plugins failed. */ "Error loading plugins" = "حدث خطأ أثناء تحميل الإضافات"; -/* Message shown when marking a Comment as spam fails. */ -"Error marking comment as spam" = "خطأ أثناء وضع علامة على التعليق كمزعج"; - /* Message displayed when spamming a comment fails. */ "Error marking comment as spam." = "خطأ أثناء وضع علامة على التعليق كمزعج."; @@ -2874,12 +2878,12 @@ translators: Block name. %s: The localized block name */ /* Generic message shown when there was an error trying to re-send email verification. */ "Error sending verification email. Check your connection and try again." = "خطأ في إرسال رسالة بريد إلكتروني للتحقق. تحقق من اتصالك وحاول مرة أخرى."; +/* Message displayed when approving a comment fails. */ +"Error setting comment to approved." = "Error setting comment to approved."; + /* Message displayed when pending a comment fails. */ "Error setting comment to pending." = "خطأ أثناء تعيين التعليق تحت المراجعة."; -/* Message shown when unapproving a Comment fails. */ -"Error unapproving comment" = "خطأ في عدم الموافقة على التعليق"; - /* There was an error updating a plugin, placeholder is the plugin name */ "Error updating %@." = "حدث خطأ أثناء تحديث %@."; @@ -3199,6 +3203,9 @@ translators: Block name. %s: The localized block name */ /* Next web page */ "Forward" = "إعادة التوجيه"; +/* No comment provided by engineer. */ +"Four" = "Four"; + /* Browse free themes selection title */ "Free" = "مجانًا"; @@ -3235,6 +3242,9 @@ translators: Block name. %s: The localized block name */ /* translators: accessibility text. %s: gallery caption. */ "Gallery caption. %s" = "التسمية التوضيحية للمعرض. %s"; +/* No comment provided by engineer. */ +"Gallery style" = "Gallery style"; + /* An example tag used in the login prologue screens. */ "Gardening" = "زراعة الحدائق"; @@ -3853,6 +3863,9 @@ translators: Block name. %s: The localized block name */ User's Last Name */ "Last Name" = "اسم العائلة"; +/* Content of a weekly roundup push notification containing stats about the user's site. The % markers are placeholders and will be replaced by the appropriate number of views, comments, and likes. The numbers indicate the order, so they can be rearranged if necessary – 1 is views, 2 is comments, 3 is likes. */ +"Last week you had %1$d views, %2$d comments and %3$d likes." = "Last week you had %1$d views, %2$d comments and %3$d likes."; + /* Insights latest post summary header */ "Latest Post Summary" = "ملخص آخر مقالة"; @@ -4442,6 +4455,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Navigates to customize the gradient" = "التنقل لتخصيص التدرج"; +/* No comment provided by engineer. */ +"Navigates to layout selection screen" = "Navigates to layout selection screen"; + /* translators: %s: Select control button label e.g. Small translators: %s: Select control button label e.g. \"Button width\" */ "Navigates to select %s" = "ينتقل لتحديد %s"; @@ -4513,6 +4529,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Table view title for the quick start section. */ "Next Steps" = "الخطوات التالية"; +/* Accessibility label for the button which shows the previous month in the monthly calendar view */ +"Next month" = "Next month"; + /* Accessibility label for the next notification button */ "Next notification" = "التنبيه التالي"; @@ -4611,6 +4630,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ Text shown when there is no data to display in the stats list view. */ "No data yet" = "لا توجد بيانات حتى الآن"; +/* Accessibility label for no currently selected range. */ +"No date range selected" = "No date range selected"; + /* Title for the view when there aren't any fixed threats to display */ "No fixed threats" = "لا توجد تهديدات معالجة"; @@ -4886,12 +4908,18 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* A subtitle with more detailed info for the user when no WordPress.com sites could be found. */ "Once you create a WordPress.com site, you can reblog content that you like to your own site." = "بمجرد إنشاء موقع WordPress.com، يمكنك إعادة تدوين المحتوى الذي أعجبك على موقعك الخاص."; +/* No comment provided by engineer. */ +"One" = "One"; + /* Subtitle displayed when the user has removed all Insights from display. */ "Only see the most relevant stats. Add insights to fit your needs." = "أنظر فقط للإحصائيات الأكثر صلة. أضف رؤى لتناسب احتياجاتك."; /* No comment provided by engineer. */ "Only show excerpt" = "إظهار المقتطف فقط"; +/* Message telling the user that they've only enabled limited photo library permissions for the app. */ +"Only the selected photos you've given access to are available." = "Only the selected photos you've given access to are available."; + /* An informal exclaimation that means `something went wrong`. Title for the view when there's an error loading Activity Log Title for the view when there's an error loading scan status @@ -5478,6 +5506,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Description of a Quick Start Tour */ "Preview your new site to see what your visitors will see." = "يمكنك معاينة موقعك الجديد لرؤية ما سيراه الزائرون."; +/* Accessibility label for the button which shows the previous month in the monthly calendar view */ +"Previous month" = "Previous month"; + /* Accessibility label for the previous notification button */ "Previous notification" = "التنبيه السابق"; @@ -5775,7 +5806,7 @@ translators: %s: Select control button label e.g. \"Button width\" */ "Remove Site Icon" = "إزالة رمز الموقع"; /* No comment provided by engineer. */ -"Remove as Featured Image " = "إزالة الصورة البارزة "; +"Remove as Featured Image" = "Remove as Featured Image"; /* No comment provided by engineer. */ "Remove block" = "إزالة المكوِّن"; @@ -6235,6 +6266,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Register Domain - Domain contact information field placeholder for Country */ "Select Country" = "تحديد البلد"; +/* Title of button that allows the user to select more photos to access within the app */ +"Select More" = "Select More"; + /* Blog Picker's Title */ "Select Site" = "تحديد موقع"; @@ -6298,6 +6332,12 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Error message when user tries a no longer existent video media object. */ "Selected media is unavailable." = "الوسائط المحددة غير متوفرة."; +/* Accessibility label for summary of currently single date. %1$@ is the date */ +"Selected range: %1$@ only" = "Selected range: %1$@ only"; + +/* Accessibility label for summary of currently selected range. %1$@ is the start date, %2$@ is the end date. */ +"Selected range: %1$@ to %2$@" = "Selected range: %1$@ to %2$@"; + /* translators: %s: Select font size option value e.g: \"Selected: Large\". translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Selected: %s" = "مُحدَّد: %s"; @@ -6358,7 +6398,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Set Parent" = "تعيين الأصل"; /* No comment provided by engineer. */ -"Set as Featured Image " = "تعيين كصورة بارزة "; +"Set as Featured Image" = "Set as Featured Image"; /* Label for a button that sets the selected page as the site's Homepage */ "Set as Homepage" = "تعيين كصفحة رئيسية"; @@ -6576,6 +6616,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Title for the Language Picker View */ "Site Language" = "لغة الموقع"; +/* Title for the site menu view on the My Site screen */ +"Site Menu" = "Site Menu"; + /* Describes a site redirect domain */ "Site Redirect" = "إعادة توجيه الموقع"; @@ -6763,7 +6806,6 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Button title for Spam comment state. Marks comment as spam. - Spam Title of spam Comments filter. */ "Spam" = "مزعج"; @@ -7106,7 +7148,8 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Description shown when a user logs in with Google but no matching WordPress.com account is found */ "The Google account \"%@\" doesn't match any account on WordPress.com" = "لا يتطابق حساب جوجل \"‎%@\" مع أي حساب موجود على WordPress.com."; -/* Message of error prompt shown when a user tries to perform an action without an internet connection. */ +/* Error message shown when a media upload fails because the user isn't connected to the Internet. + Message of error prompt shown when a user tries to perform an action without an internet connection. */ "The Internet connection appears to be offline." = "يبدو أن الاتصال بالإنترنت في وضع دون اتصال."; /* Message informing the user that the site title can only be changed by an administrator user. */ @@ -7145,8 +7188,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Message shown when an image failed to load while trying to add it to the Media library. */ "The image could not be added to the Media Library." = "تعذرت إضافة الصورة إلى مكتبة الوسائط."; -/* Error message shown when a media upload fails because the user isn't connected to the internet. - Message of error prompt shown when a user tries to perform an action without an internet connection. */ +/* Message of error prompt shown when a user tries to perform an action without an internet connection. */ "The internet connection appears to be offline." = "يبدو أن الاتصال بالإنترنت في وضع دون اتصال."; /* Message shown when an asset failed to load while trying to add it to the Media library. */ @@ -7182,6 +7224,12 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Description shown in alert to confirm skipping all quick start items */ "The quick start tour will guide you through building a basic site. Are you sure you want to skip? " = "ستُساعدك جولة البدء السريع على إنشاء الموقع الأساسي. هل تريد بالتأكيد التخطي؟ "; +/* A failure reason for when the request couldn't be serialized. */ +"The serialization of the request failed." = "The serialization of the request failed."; + +/* A failure reason for when the response couldn't be serialized. */ +"The serialization of the response failed." = "The serialization of the response failed."; + /* No comment provided by engineer. */ "The server returned an empty response. This usually means you need to increase the memory limit for your site." = "أرجع الخادم استجابة فارغة. يعني ذلك عادة أنك بحاجة إلى زيادة الحد الأقصى لذاكرة موقعك."; @@ -7282,6 +7330,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Error message informing the user that there was a problem blocking posts from a site from their reader. */ "There was a problem blocking posts from the specified site." = "حدثت مشكلة أثناء حظر المقالات من الموقع المحدد."; +/* A general error message shown to the user when there was an API communication failure. */ +"There was a problem communicating with the site." = "There was a problem communicating with the site."; + /* Message for the warning shown to the user when the app realizes there should be an auth token but there isn't one. */ "There was a problem connecting to WordPress.com. Please log in again." = "حدثت مشكلة أثناء الاتصال بـ WordPress.com. يُرجى تسجيل الدخول مرة أخرى."; @@ -7450,12 +7501,18 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Message displayed when a threat is ignored successfully. */ "Threat ignored." = "تم تجاهل التهديد."; +/* No comment provided by engineer. */ +"Three" = "Three"; + /* Thumbnail image size. Should be the same as in core WP. */ "Thumbnail" = "صورة مصغرة"; /* Message shown if a thumbnail preview of a media item unavailable. */ "Thumbnail unavailable." = "الصورة المصغّرة غير متوفرة."; +/* No comment provided by engineer. */ +"Tiled gallery settings" = "Tiled gallery settings"; + /* Blog Writing Settings: Time Format Writing Time Format Settings Title */ "Time Format" = "صيغة الوقت"; @@ -7600,13 +7657,16 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* No comment provided by engineer. */ "Transform block…" = "تحويل المكوِّن…"; -/* Accessibility label for trash buttons in nav bars +/* Accessibility label for trash button to delete items from the user's media library + Accessibility label for trash buttons in nav bars Button title for Trash comment state. - Trash button title Trashes a comment Trashes the comment */ "Trash" = "سلة المهملات"; +/* Accessibility hint for trash button to delete items from the user's media library */ +"Trash selected media" = "Trash selected media"; + /* Title of the trash page confirmation alert. */ "Trash this page?" = "هل تريد نقل هذه الصفحة إلى سلة المهملات؟"; @@ -7687,6 +7747,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Title for the setting to edit the twitter username used when sharing to twitter. */ "Twitter Username" = "اسم مستخدم تويتر"; +/* No comment provided by engineer. */ +"Two" = "Two"; + /* Type menu item in share extension. */ "Type" = "النوع"; @@ -7783,7 +7846,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Unable to play video" = "يتعذر تشغيل الفيديو"; /* No comment provided by engineer. */ -"Unable to read the WordPress site at that URL. Tap 'Need Help?' to view the FAQ." = "يتعذر قراءة موقع WordPress على معرف URL ذلك. انقر على \"هل تحتاج إلى المساعدة؟\" لعرض الأسئلة المتداولة."; +"Unable to read the WordPress site at that URL. Tap 'Need more help?' to view the FAQ." = "Unable to read the WordPress site at that URL. Tap 'Need more help?' to view the FAQ."; /* Title for the Jetpack Restore Failed message. */ "Unable to restore your site" = "غير قادر على استعادة موقعك"; @@ -7866,6 +7929,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Underline" = "تحته خط"; /* Button in the notification presented in Reader when a post removed from saved for later + Button title. Reverts a comment moderation action. Button title. Reverts the previous notification operation Revert an operation The title of an 'undo' button. Tapping the button moves a trashed page out of the trash folder. @@ -8524,9 +8588,13 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Blog Writing Settings: Weeks starts on */ "Week starts on" = "يبدأ الأسبوع في"; -/* Setting: indicates if the site reports its Weekly Roundup */ +/* Setting: indicates if the site reports its Weekly Roundup + Title of Weekly Roundup push notification */ "Weekly Roundup" = "موجز أسبوعي"; +/* Title of Weekly Roundup push notification. %@ is a placeholder and will be replaced with the title of one of the user's websites. */ +"Weekly Roundup: %@" = "Weekly Roundup: %@"; + /* Title of Weeks stats filter. */ "Weeks" = "أسابيع"; @@ -8830,12 +8898,12 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* A text for subtitle label on Login epilogue screen */ "You can switch sites at any time." = "يمكنك تبديل المواقع في أي وقت."; +/* Prompt shown on the Blogging Reminders Settings screen. */ +"You can update this any time" = "You can update this any time"; + /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "يمكن تحديث هذا في أي وقت من خلال موقعي > إعدادات الموقع"; -/* Prompt shown on the Blogging Reminders Settings screen. */ -"You can update this anytime" = "يمكنك تحديث هذا في أي وقت"; - /* No comment provided by engineer. */ "You cannot use that email address to signup. We are having problems with them blocking some of our email. Please use another email provider." = "لا يمكنك استخدام عنوان البريد الإلكتروني هذا للتسجيل. تواجهنا مشكلات مع العناوين التي تحظر البريد الإلكتروني لدينا. يُرجى استخدام مزود بريد إلكتروني آخر."; @@ -9059,6 +9127,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* The default Jetpack view message */ "Your website credentials will not be stored and are used only for the purpose of installing Jetpack." = "لن يتم تخزين بيانات اعتمادك وستُستخدم فقط بغرض تنصيب Jetpack."; +/* Prompt displayed as part of the stats Weekly Roundup push notification. */ +"Your weekly roundup is ready, tap here to see the details!" = "Your weekly roundup is ready, tap here to see the details!"; + /* Describes the expected behavior when the user disables in-app notifications in Reader Comments. */ "You’re following this conversation. You will receive an email and a notification whenever a new comment is made." = "إنك تتابع هذه المحادثة. ستتلقى بريدًا إلكترونيًا وتنبيهًا عند إجراء تعليق جديد."; diff --git a/WordPress/Resources/bg.lproj/Localizable.strings b/WordPress/Resources/bg.lproj/Localizable.strings index eebca6691b0f..9f56b0909f62 100644 --- a/WordPress/Resources/bg.lproj/Localizable.strings +++ b/WordPress/Resources/bg.lproj/Localizable.strings @@ -468,7 +468,8 @@ translators: Block name. %s: The localized block name */ /* Label for the Activity Type filter button when there are more than 1 activity type selected */ "Activity Type (%1$d)" = "Activity Type (%1$d)"; -/* Remove asset from media picker list */ +/* Accessibility label for add button to add items to the user's media library + Remove asset from media picker list */ "Add" = "Добавяне"; /* Action for Media Picker to indicate selection of media. The argument in the string represents the number of elements (as numeric digits) selected */ @@ -564,6 +565,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Add menu item to children" = "Добавяне на дъщерен елемент в менюто"; +/* Accessibility hint for add button to add items to the user's media library */ +"Add new media" = "Add new media"; + /* Screen reader text for Menus button that adds a new menu to a site. */ "Add new menu" = "Add new menu"; @@ -704,6 +708,12 @@ translators: Block name. %s: The localized block name */ /* Title of a row displayed on the debug screen used to indicate whether crash logs should be forced to send, even if they otherwise wouldn't */ "Always Send Crash Logs" = "Always Send Crash Logs"; +/* A failure reason for when an error HTTP status code was returned from the site, with the specific error code. */ +"An HTTP error code %i was returned." = "An HTTP error code %i was returned."; + +/* A failure reason for when an error HTTP status code was returned from the site. */ +"An HTTP error code was returned." = "An HTTP error code was returned."; + /* Error message when loading failed because there's no connection */ "An active internet connection is required" = "An active internet connection is required"; @@ -756,6 +766,9 @@ translators: Block name. %s: The localized block name */ /* Text displayed when a stat section failed to load. */ "An error occurred." = "An error occurred."; +/* A failure reason for when the error that occured wasn't able to be determined. */ +"An unknown error occurred." = "An unknown error occurred."; + /* Error message shown when a media upload fails for unknown reason and the user should try again. */ "An unknown error occurred. Please try again." = "An unknown error occurred. Please try again."; @@ -817,18 +830,9 @@ translators: Block name. %s: The localized block name */ /* Message prompting the user to confirm that they want to disconnect Jetpack from the site. */ "Are you sure you want to disconnect Jetpack from the site?" = "Сигурни ли сте, че искате да прекратите връзката на Jetpack със сайта?"; -/* Message asking for confirmation before marking a comment as spam */ -"Are you sure you want to mark this comment as Spam?" = "Сигурни ли сте, че искате да маркирате този коментар като спам?"; - -/* Message asking for confirmation before marking a comment as trash */ -"Are you sure you want to mark this comment as Trash?" = "Are you sure you want to mark this comment as Trash?"; - /* Message prompting the user to confirm that they want to permanently delete a group of media items. */ "Are you sure you want to permanently delete these items?" = "Сигурен ли сте, че желаете безвъзвратно да изтриете избраните елементи?"; -/* Message asking for confirmation on comment deletion */ -"Are you sure you want to permanently delete this comment?" = "Are you sure you want to permanently delete this comment?"; - /* Message prompting the user to confirm that they want to permanently delete a media item. Should match Calypso. */ "Are you sure you want to permanently delete this item?" = "Are you sure you want to permanently delete this item?"; @@ -1292,6 +1296,9 @@ translators: Block name. %s: The localized block name */ Main title */ "Change Password" = "Change Password"; +/* Title of button that takes user to the system Settings section for the app */ +"Change Settings" = "Change Settings"; + /* Title of an alert prompting the user that they are about to change the blog they are posting to. */ "Change Site" = "Промяна на сайт"; @@ -1587,6 +1594,9 @@ translators: Block name. %s: The localized block name */ My First Post */ "Comment on" = "Comment on"; +/* Message displayed when approving a comment succeeds. */ +"Comment set to approved." = "Comment set to approved."; + /* Message displayed when pending a comment succeeds. */ "Comment set to pending." = "Comment set to pending."; @@ -1677,8 +1687,7 @@ translators: Block name. %s: The localized block name */ /* Section title for the configure table section in the blog details screen */ "Configure" = "Конфигуриране"; -/* Confirm - Verb. Title for Jetpack Restore confirm button. */ +/* Verb. Title for Jetpack Restore confirm button. */ "Confirm" = "Потвърждаване"; /* Close Account alert title */ @@ -2117,7 +2126,8 @@ translators: Block name. %s: The localized block name */ /* Title for the app appearance setting for dark mode */ "Dark" = "Dark"; -/* Action title. Noun. Opens the user's WordPress.com dashboard in an external browser. */ +/* Action title. Noun. Opens the user's WordPress.com dashboard in an external browser. + Title for dashboard view on the My Site screen */ "Dashboard" = "Табло"; /* Title for a threat that includes the number of database rows affected */ @@ -2174,7 +2184,6 @@ translators: Block name. %s: The localized block name */ "Defaults for New Posts" = "По подразбиране за нови публикации"; /* Delete - Delete button title Delete button title for the warning shown to the user when he refuses to re-login when the authToken is missing. Title for button that permanently deletes a media item (photo / video) Title for button that permanently deletes one or more media items (photos / videos) @@ -2533,7 +2542,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Each block has its own settings. To find them, tap on a block. Its settings will appear on the toolbar at the bottom of the screen." = "Each block has its own settings. To find them, tap on a block. Its settings will appear on the toolbar at the bottom of the screen."; -/* Edit the post. +/* Accessibility label for edit button to enable multi selection mode in the user's media library + Edit the post. Editing GIF alert default action button. Edits a Comment Edits the comment @@ -2740,6 +2750,9 @@ translators: Block name. %s: The localized block name */ /* Secondary message shown when there are no domains that match the user entered text. */ "Enter different words above and we'll look for an address that matches it." = "Enter different words above and we'll look for an address that matches it."; +/* Accessibility hint for edit button to enable multi selection mode in the user's media library */ +"Enter edit mode to enable multi select to delete" = "Enter edit mode to enable multi select to delete"; + /* (placeholder) Help enter WordPress password Placeholder of a field to type a password to protect the post. */ "Enter password" = "Въвеждане на парола"; @@ -2790,9 +2803,6 @@ translators: Block name. %s: The localized block name */ /* There was an error activating a plugin, placeholder is the plugin name */ "Error activating %@." = "Error activating %@."; -/* Message shown when approving a Comment fails. */ -"Error approving comment" = "Error approving comment"; - /* Message displayed when approving a comment fails. */ "Error approving comment." = "Error approving comment."; @@ -2802,9 +2812,6 @@ translators: Block name. %s: The localized block name */ /* There was an error deactivating a plugin, placeholder is the plugin name */ "Error deactivating %@." = "Error deactivating %@."; -/* Message shown when deleting a Comment fails. */ -"Error deleting comment" = "Error deleting comment"; - /* Message displayed when deleting a comment fails. */ "Error deleting comment." = "Error deleting comment."; @@ -2832,9 +2839,6 @@ translators: Block name. %s: The localized block name */ /* Messaged displayed when fetching plugins failed. */ "Error loading plugins" = "Error loading plugins"; -/* Message shown when marking a Comment as spam fails. */ -"Error marking comment as spam" = "Error marking comment as spam"; - /* Message displayed when spamming a comment fails. */ "Error marking comment as spam." = "Error marking comment as spam."; @@ -2874,12 +2878,12 @@ translators: Block name. %s: The localized block name */ /* Generic message shown when there was an error trying to re-send email verification. */ "Error sending verification email. Check your connection and try again." = "Error sending verification email. Check your connection and try again."; +/* Message displayed when approving a comment fails. */ +"Error setting comment to approved." = "Error setting comment to approved."; + /* Message displayed when pending a comment fails. */ "Error setting comment to pending." = "Error setting comment to pending."; -/* Message shown when unapproving a Comment fails. */ -"Error unapproving comment" = "Error unapproving comment"; - /* There was an error updating a plugin, placeholder is the plugin name */ "Error updating %@." = "Error updating %@."; @@ -3199,6 +3203,9 @@ translators: Block name. %s: The localized block name */ /* Next web page */ "Forward" = "Напред"; +/* No comment provided by engineer. */ +"Four" = "Four"; + /* Browse free themes selection title */ "Free" = "Безплатни"; @@ -3235,6 +3242,9 @@ translators: Block name. %s: The localized block name */ /* translators: accessibility text. %s: gallery caption. */ "Gallery caption. %s" = "Gallery caption. %s"; +/* No comment provided by engineer. */ +"Gallery style" = "Gallery style"; + /* An example tag used in the login prologue screens. */ "Gardening" = "Gardening"; @@ -3853,6 +3863,9 @@ translators: Block name. %s: The localized block name */ User's Last Name */ "Last Name" = "Фамилия"; +/* Content of a weekly roundup push notification containing stats about the user's site. The % markers are placeholders and will be replaced by the appropriate number of views, comments, and likes. The numbers indicate the order, so they can be rearranged if necessary – 1 is views, 2 is comments, 3 is likes. */ +"Last week you had %1$d views, %2$d comments and %3$d likes." = "Last week you had %1$d views, %2$d comments and %3$d likes."; + /* Insights latest post summary header */ "Latest Post Summary" = "Кратко описание на последната публикация"; @@ -4442,6 +4455,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Navigates to customize the gradient" = "Navigates to customize the gradient"; +/* No comment provided by engineer. */ +"Navigates to layout selection screen" = "Navigates to layout selection screen"; + /* translators: %s: Select control button label e.g. Small translators: %s: Select control button label e.g. \"Button width\" */ "Navigates to select %s" = "Navigates to select %s"; @@ -4513,6 +4529,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Table view title for the quick start section. */ "Next Steps" = "Next Steps"; +/* Accessibility label for the button which shows the previous month in the monthly calendar view */ +"Next month" = "Next month"; + /* Accessibility label for the next notification button */ "Next notification" = "Следващо уведомление"; @@ -4611,6 +4630,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ Text shown when there is no data to display in the stats list view. */ "No data yet" = "No data yet"; +/* Accessibility label for no currently selected range. */ +"No date range selected" = "No date range selected"; + /* Title for the view when there aren't any fixed threats to display */ "No fixed threats" = "No fixed threats"; @@ -4886,12 +4908,18 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* A subtitle with more detailed info for the user when no WordPress.com sites could be found. */ "Once you create a WordPress.com site, you can reblog content that you like to your own site." = "Once you create a WordPress.com site, you can reblog content that you like to your own site."; +/* No comment provided by engineer. */ +"One" = "One"; + /* Subtitle displayed when the user has removed all Insights from display. */ "Only see the most relevant stats. Add insights to fit your needs." = "Only see the most relevant stats. Add insights to fit your needs."; /* No comment provided by engineer. */ "Only show excerpt" = "Only show excerpt"; +/* Message telling the user that they've only enabled limited photo library permissions for the app. */ +"Only the selected photos you've given access to are available." = "Only the selected photos you've given access to are available."; + /* An informal exclaimation that means `something went wrong`. Title for the view when there's an error loading Activity Log Title for the view when there's an error loading scan status @@ -5478,6 +5506,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Description of a Quick Start Tour */ "Preview your new site to see what your visitors will see." = "Preview your new site to see what your visitors will see."; +/* Accessibility label for the button which shows the previous month in the monthly calendar view */ +"Previous month" = "Previous month"; + /* Accessibility label for the previous notification button */ "Previous notification" = "Previous notification"; @@ -5775,7 +5806,7 @@ translators: %s: Select control button label e.g. \"Button width\" */ "Remove Site Icon" = "Remove Site Icon"; /* No comment provided by engineer. */ -"Remove as Featured Image " = "Remove as Featured Image "; +"Remove as Featured Image" = "Remove as Featured Image"; /* No comment provided by engineer. */ "Remove block" = "Remove block"; @@ -6235,6 +6266,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Register Domain - Domain contact information field placeholder for Country */ "Select Country" = "Select Country"; +/* Title of button that allows the user to select more photos to access within the app */ +"Select More" = "Select More"; + /* Blog Picker's Title */ "Select Site" = "Избор на сайт"; @@ -6298,6 +6332,12 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Error message when user tries a no longer existent video media object. */ "Selected media is unavailable." = "Selected media is unavailable."; +/* Accessibility label for summary of currently single date. %1$@ is the date */ +"Selected range: %1$@ only" = "Selected range: %1$@ only"; + +/* Accessibility label for summary of currently selected range. %1$@ is the start date, %2$@ is the end date. */ +"Selected range: %1$@ to %2$@" = "Selected range: %1$@ to %2$@"; + /* translators: %s: Select font size option value e.g: \"Selected: Large\". translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Selected: %s" = "Selected: %s"; @@ -6358,7 +6398,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Set Parent" = "Set Parent"; /* No comment provided by engineer. */ -"Set as Featured Image " = "Set as Featured Image "; +"Set as Featured Image" = "Set as Featured Image"; /* Label for a button that sets the selected page as the site's Homepage */ "Set as Homepage" = "Set as Homepage"; @@ -6576,6 +6616,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Title for the Language Picker View */ "Site Language" = "Език на сайта"; +/* Title for the site menu view on the My Site screen */ +"Site Menu" = "Site Menu"; + /* Describes a site redirect domain */ "Site Redirect" = "Пренасочване на сайт"; @@ -6763,7 +6806,6 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Button title for Spam comment state. Marks comment as spam. - Spam Title of spam Comments filter. */ "Spam" = "Спам"; @@ -7106,7 +7148,8 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Description shown when a user logs in with Google but no matching WordPress.com account is found */ "The Google account \"%@\" doesn't match any account on WordPress.com" = "The Google account \"%@\" doesn't match any account on WordPress.com"; -/* Message of error prompt shown when a user tries to perform an action without an internet connection. */ +/* Error message shown when a media upload fails because the user isn't connected to the Internet. + Message of error prompt shown when a user tries to perform an action without an internet connection. */ "The Internet connection appears to be offline." = "Няма връзка с интернет."; /* Message informing the user that the site title can only be changed by an administrator user. */ @@ -7145,8 +7188,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Message shown when an image failed to load while trying to add it to the Media library. */ "The image could not be added to the Media Library." = "The image could not be added to the Media Library."; -/* Error message shown when a media upload fails because the user isn't connected to the internet. - Message of error prompt shown when a user tries to perform an action without an internet connection. */ +/* Message of error prompt shown when a user tries to perform an action without an internet connection. */ "The internet connection appears to be offline." = "Няма връзка с интернет"; /* Message shown when an asset failed to load while trying to add it to the Media library. */ @@ -7182,6 +7224,12 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Description shown in alert to confirm skipping all quick start items */ "The quick start tour will guide you through building a basic site. Are you sure you want to skip? " = "The quick start tour will guide you through building a basic site. Are you sure you want to skip? "; +/* A failure reason for when the request couldn't be serialized. */ +"The serialization of the request failed." = "The serialization of the request failed."; + +/* A failure reason for when the response couldn't be serialized. */ +"The serialization of the response failed." = "The serialization of the response failed."; + /* No comment provided by engineer. */ "The server returned an empty response. This usually means you need to increase the memory limit for your site." = "Сървърът върна празен отговор. Това обикновено значи, че трябва да вдигнете паметта на сайта си."; @@ -7282,6 +7330,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Error message informing the user that there was a problem blocking posts from a site from their reader. */ "There was a problem blocking posts from the specified site." = "Възникна проблем при блокирането на публикациите от сайта."; +/* A general error message shown to the user when there was an API communication failure. */ +"There was a problem communicating with the site." = "There was a problem communicating with the site."; + /* Message for the warning shown to the user when the app realizes there should be an auth token but there isn't one. */ "There was a problem connecting to WordPress.com. Please log in again." = "Възникна проблем при свързването с WordPress.com. Моля, влезте отново."; @@ -7450,12 +7501,18 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Message displayed when a threat is ignored successfully. */ "Threat ignored." = "Threat ignored."; +/* No comment provided by engineer. */ +"Three" = "Three"; + /* Thumbnail image size. Should be the same as in core WP. */ "Thumbnail" = "Умалена картинка"; /* Message shown if a thumbnail preview of a media item unavailable. */ "Thumbnail unavailable." = "Thumbnail unavailable."; +/* No comment provided by engineer. */ +"Tiled gallery settings" = "Tiled gallery settings"; + /* Blog Writing Settings: Time Format Writing Time Format Settings Title */ "Time Format" = "Time Format"; @@ -7600,13 +7657,16 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* No comment provided by engineer. */ "Transform block…" = "Transform block…"; -/* Accessibility label for trash buttons in nav bars +/* Accessibility label for trash button to delete items from the user's media library + Accessibility label for trash buttons in nav bars Button title for Trash comment state. - Trash button title Trashes a comment Trashes the comment */ "Trash" = "Кошче"; +/* Accessibility hint for trash button to delete items from the user's media library */ +"Trash selected media" = "Trash selected media"; + /* Title of the trash page confirmation alert. */ "Trash this page?" = "Trash this page?"; @@ -7687,6 +7747,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Title for the setting to edit the twitter username used when sharing to twitter. */ "Twitter Username" = "Потребителско име в Twitter"; +/* No comment provided by engineer. */ +"Two" = "Two"; + /* Type menu item in share extension. */ "Type" = "Type"; @@ -7783,7 +7846,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Unable to play video" = "Unable to play video"; /* No comment provided by engineer. */ -"Unable to read the WordPress site at that URL. Tap 'Need Help?' to view the FAQ." = "Неуспешно прочитане на WordPress сайт на този адрес. Натиснете на \"Имате нужда от помощ?\", за да разгледате често задаваните въпроси."; +"Unable to read the WordPress site at that URL. Tap 'Need more help?' to view the FAQ." = "Unable to read the WordPress site at that URL. Tap 'Need more help?' to view the FAQ."; /* Title for the Jetpack Restore Failed message. */ "Unable to restore your site" = "Unable to restore your site"; @@ -7866,6 +7929,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Underline" = "Подчертаване"; /* Button in the notification presented in Reader when a post removed from saved for later + Button title. Reverts a comment moderation action. Button title. Reverts the previous notification operation Revert an operation The title of an 'undo' button. Tapping the button moves a trashed page out of the trash folder. @@ -8524,9 +8588,13 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Blog Writing Settings: Weeks starts on */ "Week starts on" = "Week starts on"; -/* Setting: indicates if the site reports its Weekly Roundup */ +/* Setting: indicates if the site reports its Weekly Roundup + Title of Weekly Roundup push notification */ "Weekly Roundup" = "Weekly Roundup"; +/* Title of Weekly Roundup push notification. %@ is a placeholder and will be replaced with the title of one of the user's websites. */ +"Weekly Roundup: %@" = "Weekly Roundup: %@"; + /* Title of Weeks stats filter. */ "Weeks" = "Седмици"; @@ -8830,12 +8898,12 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* A text for subtitle label on Login epilogue screen */ "You can switch sites at any time." = "You can switch sites at any time."; +/* Prompt shown on the Blogging Reminders Settings screen. */ +"You can update this any time" = "You can update this any time"; + /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "You can update this any time via My Site > Site Settings"; -/* Prompt shown on the Blogging Reminders Settings screen. */ -"You can update this anytime" = "You can update this anytime"; - /* No comment provided by engineer. */ "You cannot use that email address to signup. We are having problems with them blocking some of our email. Please use another email provider." = "Не можете да използвате този адрес за регистрация. Имаме проблеми с тях, блокират писмата от нас. Опитайте с друг имейл адрес от различен доставчик."; @@ -9059,6 +9127,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* The default Jetpack view message */ "Your website credentials will not be stored and are used only for the purpose of installing Jetpack." = "Your website credentials will not be stored and are used only for the purpose of installing Jetpack."; +/* Prompt displayed as part of the stats Weekly Roundup push notification. */ +"Your weekly roundup is ready, tap here to see the details!" = "Your weekly roundup is ready, tap here to see the details!"; + /* Describes the expected behavior when the user disables in-app notifications in Reader Comments. */ "You’re following this conversation. You will receive an email and a notification whenever a new comment is made." = "You’re following this conversation. You will receive an email and a notification whenever a new comment is made."; diff --git a/WordPress/Resources/cs.lproj/Localizable.strings b/WordPress/Resources/cs.lproj/Localizable.strings index 4fc0acd2575b..a1d08655c297 100644 --- a/WordPress/Resources/cs.lproj/Localizable.strings +++ b/WordPress/Resources/cs.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2022-01-10 13:05:38+0000 */ +/* Translation-Revision-Date: 2022-01-26 08:42:49+0000 */ /* Plural-Forms: nplurals=3; plural=(n == 1) ? 0 : ((n >= 2 && n <= 4) ? 1 : 2); */ /* Generator: GlotPress/3.0.0-alpha.2 */ /* Language: cs_CZ */ @@ -468,7 +468,8 @@ translators: Block name. %s: The localized block name */ /* Label for the Activity Type filter button when there are more than 1 activity type selected */ "Activity Type (%1$d)" = "Typ aktivit (%1$d)"; -/* Remove asset from media picker list */ +/* Accessibility label for add button to add items to the user's media library + Remove asset from media picker list */ "Add" = "Přidat"; /* Action for Media Picker to indicate selection of media. The argument in the string represents the number of elements (as numeric digits) selected */ @@ -564,6 +565,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Add menu item to children" = "Přidat položku menu pro děti"; +/* Accessibility hint for add button to add items to the user's media library */ +"Add new media" = "Přidat nová média"; + /* Screen reader text for Menus button that adds a new menu to a site. */ "Add new menu" = "Přidat nové menu"; @@ -704,6 +708,12 @@ translators: Block name. %s: The localized block name */ /* Title of a row displayed on the debug screen used to indicate whether crash logs should be forced to send, even if they otherwise wouldn't */ "Always Send Crash Logs" = "Vždy odesílat protokoly o selhání"; +/* A failure reason for when an error HTTP status code was returned from the site, with the specific error code. */ +"An HTTP error code %i was returned." = "Byl vrácen kód chyby HTTP %i."; + +/* A failure reason for when an error HTTP status code was returned from the site. */ +"An HTTP error code was returned." = "Byl vrácen kód chyby HTTP."; + /* Error message when loading failed because there's no connection */ "An active internet connection is required" = "Je vyžadováno aktivní připojení k internetu"; @@ -756,6 +766,9 @@ translators: Block name. %s: The localized block name */ /* Text displayed when a stat section failed to load. */ "An error occurred." = "Vyskytla se chyba."; +/* A failure reason for when the error that occured wasn't able to be determined. */ +"An unknown error occurred." = "Vyskytla se neznámá chyba."; + /* Error message shown when a media upload fails for unknown reason and the user should try again. */ "An unknown error occurred. Please try again." = "Nastala neznámá chyba. Prosím zkuste to znovu."; @@ -817,18 +830,9 @@ translators: Block name. %s: The localized block name */ /* Message prompting the user to confirm that they want to disconnect Jetpack from the site. */ "Are you sure you want to disconnect Jetpack from the site?" = "Opravdu chcete odpojit Jetpack od webové stránky?"; -/* Message asking for confirmation before marking a comment as spam */ -"Are you sure you want to mark this comment as Spam?" = "Jste si jistý, že chcete označit komentář jako spam?"; - -/* Message asking for confirmation before marking a comment as trash */ -"Are you sure you want to mark this comment as Trash?" = "Opravdu chcete tento komentář označit jako smazaný?"; - /* Message prompting the user to confirm that they want to permanently delete a group of media items. */ "Are you sure you want to permanently delete these items?" = "Opravdu chcete trvale odstranit vybrané položky?"; -/* Message asking for confirmation on comment deletion */ -"Are you sure you want to permanently delete this comment?" = "Opravdu chcete tento komentář trvale smazat?"; - /* Message prompting the user to confirm that they want to permanently delete a media item. Should match Calypso. */ "Are you sure you want to permanently delete this item?" = "Opravdu chcete tuto položku trvale smazat?"; @@ -1292,6 +1296,9 @@ translators: Block name. %s: The localized block name */ Main title */ "Change Password" = "Změnit heslo"; +/* Title of button that takes user to the system Settings section for the app */ +"Change Settings" = "Změnit nastavení"; + /* Title of an alert prompting the user that they are about to change the blog they are posting to. */ "Change Site" = "Přepnout web"; @@ -1587,6 +1594,9 @@ translators: Block name. %s: The localized block name */ My First Post */ "Comment on" = "Komentář pro "; +/* Message displayed when approving a comment succeeds. */ +"Comment set to approved." = "Komentář nastaven na schválený."; + /* Message displayed when pending a comment succeeds. */ "Comment set to pending." = "Komentář nastaven jako čekající."; @@ -1677,8 +1687,7 @@ translators: Block name. %s: The localized block name */ /* Section title for the configure table section in the blog details screen */ "Configure" = "Nastavení"; -/* Confirm - Verb. Title for Jetpack Restore confirm button. */ +/* Verb. Title for Jetpack Restore confirm button. */ "Confirm" = "Potvrdit"; /* Close Account alert title */ @@ -2117,7 +2126,8 @@ translators: Block name. %s: The localized block name */ /* Title for the app appearance setting for dark mode */ "Dark" = "Tmavý"; -/* Action title. Noun. Opens the user's WordPress.com dashboard in an external browser. */ +/* Action title. Noun. Opens the user's WordPress.com dashboard in an external browser. + Title for dashboard view on the My Site screen */ "Dashboard" = "Nástěnka"; /* Title for a threat that includes the number of database rows affected */ @@ -2174,7 +2184,6 @@ translators: Block name. %s: The localized block name */ "Defaults for New Posts" = "Výchozí pro nové příspěvky"; /* Delete - Delete button title Delete button title for the warning shown to the user when he refuses to re-login when the authToken is missing. Title for button that permanently deletes a media item (photo / video) Title for button that permanently deletes one or more media items (photos / videos) @@ -2533,7 +2542,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Each block has its own settings. To find them, tap on a block. Its settings will appear on the toolbar at the bottom of the screen." = "Každý blok má své vlastní nastavení. Chcete-li je najít, klepněte na blok. Jeho nastavení se zobrazí na panelu nástrojů ve spodní části obrazovky."; -/* Edit the post. +/* Accessibility label for edit button to enable multi selection mode in the user's media library + Edit the post. Editing GIF alert default action button. Edits a Comment Edits the comment @@ -2740,6 +2750,9 @@ translators: Block name. %s: The localized block name */ /* Secondary message shown when there are no domains that match the user entered text. */ "Enter different words above and we'll look for an address that matches it." = "Výše zadejte různá slova a my vyhledáme adresu, která jí odpovídá."; +/* Accessibility hint for edit button to enable multi selection mode in the user's media library */ +"Enter edit mode to enable multi select to delete" = "Aktivujte režim úprav a povolte smazání vícenásobným výběrem"; + /* (placeholder) Help enter WordPress password Placeholder of a field to type a password to protect the post. */ "Enter password" = "Zadejte heslo"; @@ -2790,9 +2803,6 @@ translators: Block name. %s: The localized block name */ /* There was an error activating a plugin, placeholder is the plugin name */ "Error activating %@." = "Chyba při aktivaci %@."; -/* Message shown when approving a Comment fails. */ -"Error approving comment" = "Při schvalování komentáře došlo k chybě"; - /* Message displayed when approving a comment fails. */ "Error approving comment." = "Při schvalování komentáře došlo k chybě."; @@ -2802,9 +2812,6 @@ translators: Block name. %s: The localized block name */ /* There was an error deactivating a plugin, placeholder is the plugin name */ "Error deactivating %@." = "Chyba při deaktivaci %@."; -/* Message shown when deleting a Comment fails. */ -"Error deleting comment" = "Při mazání komentáře došlo k chybě"; - /* Message displayed when deleting a comment fails. */ "Error deleting comment." = "Při mazání komentáře došlo k chybě."; @@ -2832,9 +2839,6 @@ translators: Block name. %s: The localized block name */ /* Messaged displayed when fetching plugins failed. */ "Error loading plugins" = "Chyba při načítání pluginů"; -/* Message shown when marking a Comment as spam fails. */ -"Error marking comment as spam" = "Při označování komentáře jako spamu došlo k chybě"; - /* Message displayed when spamming a comment fails. */ "Error marking comment as spam." = "Při označování komentáře jako spamu došlo k chybě."; @@ -2874,12 +2878,12 @@ translators: Block name. %s: The localized block name */ /* Generic message shown when there was an error trying to re-send email verification. */ "Error sending verification email. Check your connection and try again." = "Chyba při odesílání ověřovacího e-mailu. Zkontrolujte připojení a zkuste to znovu."; +/* Message displayed when approving a comment fails. */ +"Error setting comment to approved." = "Při nastavení komentáře na schválený došlo k chybě."; + /* Message displayed when pending a comment fails. */ "Error setting comment to pending." = "Chyba nastavení komentáře jako nevyřízeného."; -/* Message shown when unapproving a Comment fails. */ -"Error unapproving comment" = "Při neschvalování komentáře došlo k chybě"; - /* There was an error updating a plugin, placeholder is the plugin name */ "Error updating %@." = "Chyba při aktualizaci %@."; @@ -3199,6 +3203,9 @@ translators: Block name. %s: The localized block name */ /* Next web page */ "Forward" = "Vpřed"; +/* No comment provided by engineer. */ +"Four" = "Čtyři"; + /* Browse free themes selection title */ "Free" = "Zdarma"; @@ -3235,6 +3242,9 @@ translators: Block name. %s: The localized block name */ /* translators: accessibility text. %s: gallery caption. */ "Gallery caption. %s" = "Titulek galerie. %s"; +/* No comment provided by engineer. */ +"Gallery style" = "Styl galerie"; + /* An example tag used in the login prologue screens. */ "Gardening" = "Zahradničení"; @@ -3853,6 +3863,9 @@ translators: Block name. %s: The localized block name */ User's Last Name */ "Last Name" = "Příjmení"; +/* Content of a weekly roundup push notification containing stats about the user's site. The % markers are placeholders and will be replaced by the appropriate number of views, comments, and likes. The numbers indicate the order, so they can be rearranged if necessary – 1 is views, 2 is comments, 3 is likes. */ +"Last week you had %1$d views, %2$d comments and %3$d likes." = "Minulý týden jste měli %1$d zobrazení, %2$d komentářů a %3$d lajků."; + /* Insights latest post summary header */ "Latest Post Summary" = "Přehled posledních příspěvků"; @@ -4442,6 +4455,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Navigates to customize the gradient" = "Přejde k přizpůsobení přechodu"; +/* No comment provided by engineer. */ +"Navigates to layout selection screen" = "Přejde na obrazovku výběru rozvržení"; + /* translators: %s: Select control button label e.g. Small translators: %s: Select control button label e.g. \"Button width\" */ "Navigates to select %s" = "Přejde k výběru %s"; @@ -4513,6 +4529,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Table view title for the quick start section. */ "Next Steps" = "Další kroky"; +/* Accessibility label for the button which shows the previous month in the monthly calendar view */ +"Next month" = "Příští měsíc"; + /* Accessibility label for the next notification button */ "Next notification" = "Další notifikace"; @@ -4611,6 +4630,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ Text shown when there is no data to display in the stats list view. */ "No data yet" = "Zatím žádná data"; +/* Accessibility label for no currently selected range. */ +"No date range selected" = "Není vybráno žádné časové období"; + /* Title for the view when there aren't any fixed threats to display */ "No fixed threats" = "Žádné opravené hrozby"; @@ -4886,12 +4908,18 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* A subtitle with more detailed info for the user when no WordPress.com sites could be found. */ "Once you create a WordPress.com site, you can reblog content that you like to your own site." = "Jakmile vytvoříte web na WordPress.com, můžete přesdílet obsah, který se vám líbí, na svůj vlastní web."; +/* No comment provided by engineer. */ +"One" = "Jeden"; + /* Subtitle displayed when the user has removed all Insights from display. */ "Only see the most relevant stats. Add insights to fit your needs." = "Zobrazují se pouze nejrelevantnější statistiky. Přidejte statistiky podle svých potřeb."; /* No comment provided by engineer. */ "Only show excerpt" = "Zobrazit pouze výňatek"; +/* Message telling the user that they've only enabled limited photo library permissions for the app. */ +"Only the selected photos you've given access to are available." = "Dostupné jsou pouze vybrané fotografie, ke kterým jste udělili přístup."; + /* An informal exclaimation that means `something went wrong`. Title for the view when there's an error loading Activity Log Title for the view when there's an error loading scan status @@ -5478,6 +5506,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Description of a Quick Start Tour */ "Preview your new site to see what your visitors will see." = "Zobrazte náhled svého nového webu, abyste viděli, co uvidí vaši návštěvníci."; +/* Accessibility label for the button which shows the previous month in the monthly calendar view */ +"Previous month" = "Předcházející měsíc"; + /* Accessibility label for the previous notification button */ "Previous notification" = "Předchozí upozornění"; @@ -5775,7 +5806,7 @@ translators: %s: Select control button label e.g. \"Button width\" */ "Remove Site Icon" = "Odstranit ikonu webu"; /* No comment provided by engineer. */ -"Remove as Featured Image " = "Odstranit náhledový obrázek"; +"Remove as Featured Image" = "Odstranit náhledový obrázek"; /* No comment provided by engineer. */ "Remove block" = "Odstranit blok"; @@ -6235,6 +6266,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Register Domain - Domain contact information field placeholder for Country */ "Select Country" = "Vybrat zemi"; +/* Title of button that allows the user to select more photos to access within the app */ +"Select More" = "Vybrat více"; + /* Blog Picker's Title */ "Select Site" = "Vybrat web"; @@ -6298,6 +6332,12 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Error message when user tries a no longer existent video media object. */ "Selected media is unavailable." = "Vybrané médium není k dispozici."; +/* Accessibility label for summary of currently single date. %1$@ is the date */ +"Selected range: %1$@ only" = "Vybraný rozsah: pouze %1$@"; + +/* Accessibility label for summary of currently selected range. %1$@ is the start date, %2$@ is the end date. */ +"Selected range: %1$@ to %2$@" = "Vybraný rozsah: %1$@ až %2$@"; + /* translators: %s: Select font size option value e.g: \"Selected: Large\". translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Selected: %s" = "Vybráno: %s"; @@ -6358,7 +6398,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Set Parent" = "Nastavit nadřazené"; /* No comment provided by engineer. */ -"Set as Featured Image " = "Použít jako náhledový obrázek"; +"Set as Featured Image" = "Použít jako náhledový obrázek"; /* Label for a button that sets the selected page as the site's Homepage */ "Set as Homepage" = "Nastavit jako hlavní stránku"; @@ -6576,6 +6616,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Title for the Language Picker View */ "Site Language" = "Jazyk webu"; +/* Title for the site menu view on the My Site screen */ +"Site Menu" = "Menu webu"; + /* Describes a site redirect domain */ "Site Redirect" = "Web přesměrován"; @@ -6763,7 +6806,6 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Button title for Spam comment state. Marks comment as spam. - Spam Title of spam Comments filter. */ "Spam" = "Spam"; @@ -7106,7 +7148,8 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Description shown when a user logs in with Google but no matching WordPress.com account is found */ "The Google account \"%@\" doesn't match any account on WordPress.com" = "Účet Google \"%@\" neodpovídá žádnému účtu na WordPress.com"; -/* Message of error prompt shown when a user tries to perform an action without an internet connection. */ +/* Error message shown when a media upload fails because the user isn't connected to the Internet. + Message of error prompt shown when a user tries to perform an action without an internet connection. */ "The Internet connection appears to be offline." = "Vypadá to, že jste offline."; /* Message informing the user that the site title can only be changed by an administrator user. */ @@ -7145,8 +7188,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Message shown when an image failed to load while trying to add it to the Media library. */ "The image could not be added to the Media Library." = "Obrázek nelze přidat do knihovny médií."; -/* Error message shown when a media upload fails because the user isn't connected to the internet. - Message of error prompt shown when a user tries to perform an action without an internet connection. */ +/* Message of error prompt shown when a user tries to perform an action without an internet connection. */ "The internet connection appears to be offline." = "Zdá se, že nejste připojeni k internetu."; /* Message shown when an asset failed to load while trying to add it to the Media library. */ @@ -7182,6 +7224,12 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Description shown in alert to confirm skipping all quick start items */ "The quick start tour will guide you through building a basic site. Are you sure you want to skip? " = "Prohlídka rychlého startu vás provede sestavením základního webu. Opravdu chcete přeskočit?"; +/* A failure reason for when the request couldn't be serialized. */ +"The serialization of the request failed." = "Série požadavků se nezdařila."; + +/* A failure reason for when the response couldn't be serialized. */ +"The serialization of the response failed." = "Série odpovědí se nezdařila."; + /* No comment provided by engineer. */ "The server returned an empty response. This usually means you need to increase the memory limit for your site." = "Server vrátil prázdnou odpověď. To obvykle znamená, že je třeba zvýšit limit paměti pro váš web."; @@ -7282,6 +7330,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Error message informing the user that there was a problem blocking posts from a site from their reader. */ "There was a problem blocking posts from the specified site." = "Došlo k potížím při blokování příspěvky z této stránky."; +/* A general error message shown to the user when there was an API communication failure. */ +"There was a problem communicating with the site." = "Při komunikaci se stránkou došlo k problému."; + /* Message for the warning shown to the user when the app realizes there should be an auth token but there isn't one. */ "There was a problem connecting to WordPress.com. Please log in again." = "Došlo k potížím s připojením k serveru WordPress.com. Přihlaste se znovu."; @@ -7450,12 +7501,18 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Message displayed when a threat is ignored successfully. */ "Threat ignored." = "Hrozba ignorována."; +/* No comment provided by engineer. */ +"Three" = "Tři"; + /* Thumbnail image size. Should be the same as in core WP. */ "Thumbnail" = "Náhled"; /* Message shown if a thumbnail preview of a media item unavailable. */ "Thumbnail unavailable." = "Miniatura není k dispozici."; +/* No comment provided by engineer. */ +"Tiled gallery settings" = "Nastavení dlaždicové galerie"; + /* Blog Writing Settings: Time Format Writing Time Format Settings Title */ "Time Format" = "Formát času"; @@ -7600,13 +7657,16 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* No comment provided by engineer. */ "Transform block…" = "Změnit blok..."; -/* Accessibility label for trash buttons in nav bars +/* Accessibility label for trash button to delete items from the user's media library + Accessibility label for trash buttons in nav bars Button title for Trash comment state. - Trash button title Trashes a comment Trashes the comment */ "Trash" = "Odstranit"; +/* Accessibility hint for trash button to delete items from the user's media library */ +"Trash selected media" = "Odstraňte vybraná média do koše"; + /* Title of the trash page confirmation alert. */ "Trash this page?" = "Smazat tuto stránku?"; @@ -7687,6 +7747,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Title for the setting to edit the twitter username used when sharing to twitter. */ "Twitter Username" = "Twitter uživatelské jméno"; +/* No comment provided by engineer. */ +"Two" = "Dva"; + /* Type menu item in share extension. */ "Type" = "Typ"; @@ -7783,7 +7846,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Unable to play video" = "Nelze přehrát video"; /* No comment provided by engineer. */ -"Unable to read the WordPress site at that URL. Tap 'Need Help?' to view the FAQ." = "Na dané URL adrese se nepodařilo nalézt WordPress. Pro zobrazení častých dotazů, klepněte na 'Potřebujete pomoc?'"; +"Unable to read the WordPress site at that URL. Tap 'Need more help?' to view the FAQ." = "Nelze číst WordPress web na této adrese URL. Klepněte na 'Potřebujete další pomoc?' pro zobrazení FAQ."; /* Title for the Jetpack Restore Failed message. */ "Unable to restore your site" = "Web nelze obnovit"; @@ -7866,6 +7929,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Underline" = "Zdůraznit"; /* Button in the notification presented in Reader when a post removed from saved for later + Button title. Reverts a comment moderation action. Button title. Reverts the previous notification operation Revert an operation The title of an 'undo' button. Tapping the button moves a trashed page out of the trash folder. @@ -8524,9 +8588,13 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Blog Writing Settings: Weeks starts on */ "Week starts on" = "Týden začíná v"; -/* Setting: indicates if the site reports its Weekly Roundup */ +/* Setting: indicates if the site reports its Weekly Roundup + Title of Weekly Roundup push notification */ "Weekly Roundup" = "Týdenní shrnutí"; +/* Title of Weekly Roundup push notification. %@ is a placeholder and will be replaced with the title of one of the user's websites. */ +"Weekly Roundup: %@" = "Týdenní shrnutí: %@"; + /* Title of Weeks stats filter. */ "Weeks" = "Týdny"; @@ -8830,12 +8898,12 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* A text for subtitle label on Login epilogue screen */ "You can switch sites at any time." = "Stránky můžete kdykoli změnit."; +/* Prompt shown on the Blogging Reminders Settings screen. */ +"You can update this any time" = "Toto můžete kdykoli aktualizovat"; + /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "Toto můžete kdykoli aktualizovat přes Můj web > Nastavení webu"; -/* Prompt shown on the Blogging Reminders Settings screen. */ -"You can update this anytime" = "Toto můžete kdykoli aktualizovat"; - /* No comment provided by engineer. */ "You cannot use that email address to signup. We are having problems with them blocking some of our email. Please use another email provider." = "Zvolenou e-mailovou adresu bohužel nemůžete pro registraci použít, protože máme s tímto poskytovatelem e-mailových služeb špatné zkušenosti a často se objevují problémy s nevyžádanými a nedoručenými e-maily. Použijte prosím nějakou jinou e-mailovou adresu."; @@ -9059,6 +9127,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* The default Jetpack view message */ "Your website credentials will not be stored and are used only for the purpose of installing Jetpack." = "Pověření na vašem webu nebudou uložena a budou použita pouze za účelem instalace Jetpack."; +/* Prompt displayed as part of the stats Weekly Roundup push notification. */ +"Your weekly roundup is ready, tap here to see the details!" = "Vaše týdenní shrnutí je připraveno, klepnutím sem zobrazíte podrobnosti!"; + /* Describes the expected behavior when the user disables in-app notifications in Reader Comments. */ "You’re following this conversation. You will receive an email and a notification whenever a new comment is made." = "Sledujete tuto konverzaci. Při každém novém komentáři obdržíte e-mail a upozornění."; diff --git a/WordPress/Resources/cy.lproj/Localizable.strings b/WordPress/Resources/cy.lproj/Localizable.strings index 4370af35ade2..432ca702d51b 100644 --- a/WordPress/Resources/cy.lproj/Localizable.strings +++ b/WordPress/Resources/cy.lproj/Localizable.strings @@ -468,7 +468,8 @@ translators: Block name. %s: The localized block name */ /* Label for the Activity Type filter button when there are more than 1 activity type selected */ "Activity Type (%1$d)" = "Activity Type (%1$d)"; -/* Remove asset from media picker list */ +/* Accessibility label for add button to add items to the user's media library + Remove asset from media picker list */ "Add" = "Add"; /* Action for Media Picker to indicate selection of media. The argument in the string represents the number of elements (as numeric digits) selected */ @@ -564,6 +565,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Add menu item to children" = "Ychwanegwch eitem dewislen plentyn"; +/* Accessibility hint for add button to add items to the user's media library */ +"Add new media" = "Add new media"; + /* Screen reader text for Menus button that adds a new menu to a site. */ "Add new menu" = "Add new menu"; @@ -704,6 +708,12 @@ translators: Block name. %s: The localized block name */ /* Title of a row displayed on the debug screen used to indicate whether crash logs should be forced to send, even if they otherwise wouldn't */ "Always Send Crash Logs" = "Always Send Crash Logs"; +/* A failure reason for when an error HTTP status code was returned from the site, with the specific error code. */ +"An HTTP error code %i was returned." = "An HTTP error code %i was returned."; + +/* A failure reason for when an error HTTP status code was returned from the site. */ +"An HTTP error code was returned." = "An HTTP error code was returned."; + /* Error message when loading failed because there's no connection */ "An active internet connection is required" = "An active internet connection is required"; @@ -756,6 +766,9 @@ translators: Block name. %s: The localized block name */ /* Text displayed when a stat section failed to load. */ "An error occurred." = "An error occurred."; +/* A failure reason for when the error that occured wasn't able to be determined. */ +"An unknown error occurred." = "An unknown error occurred."; + /* Error message shown when a media upload fails for unknown reason and the user should try again. */ "An unknown error occurred. Please try again." = "An unknown error occurred. Please try again."; @@ -817,18 +830,9 @@ translators: Block name. %s: The localized block name */ /* Message prompting the user to confirm that they want to disconnect Jetpack from the site. */ "Are you sure you want to disconnect Jetpack from the site?" = "Are you sure you want to disconnect Jetpack from the site?"; -/* Message asking for confirmation before marking a comment as spam */ -"Are you sure you want to mark this comment as Spam?" = "Ydych chi'n siŵr eich bod am nodi'r sylw hwn fel sbam?"; - -/* Message asking for confirmation before marking a comment as trash */ -"Are you sure you want to mark this comment as Trash?" = "Are you sure you want to mark this comment as Trash?"; - /* Message prompting the user to confirm that they want to permanently delete a group of media items. */ "Are you sure you want to permanently delete these items?" = "Are you sure you want to permanently delete these items?"; -/* Message asking for confirmation on comment deletion */ -"Are you sure you want to permanently delete this comment?" = "Are you sure you want to permanently delete this comment?"; - /* Message prompting the user to confirm that they want to permanently delete a media item. Should match Calypso. */ "Are you sure you want to permanently delete this item?" = "Are you sure you want to permanently delete this item?"; @@ -1292,6 +1296,9 @@ translators: Block name. %s: The localized block name */ Main title */ "Change Password" = "Change Password"; +/* Title of button that takes user to the system Settings section for the app */ +"Change Settings" = "Change Settings"; + /* Title of an alert prompting the user that they are about to change the blog they are posting to. */ "Change Site" = "Newid Gwefan"; @@ -1587,6 +1594,9 @@ translators: Block name. %s: The localized block name */ My First Post */ "Comment on" = "Comment on"; +/* Message displayed when approving a comment succeeds. */ +"Comment set to approved." = "Comment set to approved."; + /* Message displayed when pending a comment succeeds. */ "Comment set to pending." = "Comment set to pending."; @@ -1677,8 +1687,7 @@ translators: Block name. %s: The localized block name */ /* Section title for the configure table section in the blog details screen */ "Configure" = "Ffurfweddu"; -/* Confirm - Verb. Title for Jetpack Restore confirm button. */ +/* Verb. Title for Jetpack Restore confirm button. */ "Confirm" = "Cadarnhau"; /* Close Account alert title */ @@ -2117,7 +2126,8 @@ translators: Block name. %s: The localized block name */ /* Title for the app appearance setting for dark mode */ "Dark" = "Dark"; -/* Action title. Noun. Opens the user's WordPress.com dashboard in an external browser. */ +/* Action title. Noun. Opens the user's WordPress.com dashboard in an external browser. + Title for dashboard view on the My Site screen */ "Dashboard" = "Bwrdd Rheoli"; /* Title for a threat that includes the number of database rows affected */ @@ -2174,7 +2184,6 @@ translators: Block name. %s: The localized block name */ "Defaults for New Posts" = "Rhagosodiadau Gwefannau Newydd"; /* Delete - Delete button title Delete button title for the warning shown to the user when he refuses to re-login when the authToken is missing. Title for button that permanently deletes a media item (photo / video) Title for button that permanently deletes one or more media items (photos / videos) @@ -2533,7 +2542,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Each block has its own settings. To find them, tap on a block. Its settings will appear on the toolbar at the bottom of the screen." = "Each block has its own settings. To find them, tap on a block. Its settings will appear on the toolbar at the bottom of the screen."; -/* Edit the post. +/* Accessibility label for edit button to enable multi selection mode in the user's media library + Edit the post. Editing GIF alert default action button. Edits a Comment Edits the comment @@ -2740,6 +2750,9 @@ translators: Block name. %s: The localized block name */ /* Secondary message shown when there are no domains that match the user entered text. */ "Enter different words above and we'll look for an address that matches it." = "Enter different words above and we'll look for an address that matches it."; +/* Accessibility hint for edit button to enable multi selection mode in the user's media library */ +"Enter edit mode to enable multi select to delete" = "Enter edit mode to enable multi select to delete"; + /* (placeholder) Help enter WordPress password Placeholder of a field to type a password to protect the post. */ "Enter password" = "Rhowch gyfrinair"; @@ -2790,9 +2803,6 @@ translators: Block name. %s: The localized block name */ /* There was an error activating a plugin, placeholder is the plugin name */ "Error activating %@." = "Error activating %@."; -/* Message shown when approving a Comment fails. */ -"Error approving comment" = "Error approving comment"; - /* Message displayed when approving a comment fails. */ "Error approving comment." = "Error approving comment."; @@ -2802,9 +2812,6 @@ translators: Block name. %s: The localized block name */ /* There was an error deactivating a plugin, placeholder is the plugin name */ "Error deactivating %@." = "Error deactivating %@."; -/* Message shown when deleting a Comment fails. */ -"Error deleting comment" = "Error deleting comment"; - /* Message displayed when deleting a comment fails. */ "Error deleting comment." = "Error deleting comment."; @@ -2832,9 +2839,6 @@ translators: Block name. %s: The localized block name */ /* Messaged displayed when fetching plugins failed. */ "Error loading plugins" = "Error loading plugins"; -/* Message shown when marking a Comment as spam fails. */ -"Error marking comment as spam" = "Error marking comment as spam"; - /* Message displayed when spamming a comment fails. */ "Error marking comment as spam." = "Error marking comment as spam."; @@ -2874,12 +2878,12 @@ translators: Block name. %s: The localized block name */ /* Generic message shown when there was an error trying to re-send email verification. */ "Error sending verification email. Check your connection and try again." = "Error sending verification email. Check your connection and try again."; +/* Message displayed when approving a comment fails. */ +"Error setting comment to approved." = "Error setting comment to approved."; + /* Message displayed when pending a comment fails. */ "Error setting comment to pending." = "Error setting comment to pending."; -/* Message shown when unapproving a Comment fails. */ -"Error unapproving comment" = "Error unapproving comment"; - /* There was an error updating a plugin, placeholder is the plugin name */ "Error updating %@." = "Error updating %@."; @@ -3199,6 +3203,9 @@ translators: Block name. %s: The localized block name */ /* Next web page */ "Forward" = "Ymlaen"; +/* No comment provided by engineer. */ +"Four" = "Four"; + /* Browse free themes selection title */ "Free" = "Rhad ac am Ddim"; @@ -3235,6 +3242,9 @@ translators: Block name. %s: The localized block name */ /* translators: accessibility text. %s: gallery caption. */ "Gallery caption. %s" = "Gallery caption. %s"; +/* No comment provided by engineer. */ +"Gallery style" = "Gallery style"; + /* An example tag used in the login prologue screens. */ "Gardening" = "Gardening"; @@ -3853,6 +3863,9 @@ translators: Block name. %s: The localized block name */ User's Last Name */ "Last Name" = "Enw Olaf"; +/* Content of a weekly roundup push notification containing stats about the user's site. The % markers are placeholders and will be replaced by the appropriate number of views, comments, and likes. The numbers indicate the order, so they can be rearranged if necessary – 1 is views, 2 is comments, 3 is likes. */ +"Last week you had %1$d views, %2$d comments and %3$d likes." = "Last week you had %1$d views, %2$d comments and %3$d likes."; + /* Insights latest post summary header */ "Latest Post Summary" = "Crynodeb Cofnodion Diweddar"; @@ -4442,6 +4455,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Navigates to customize the gradient" = "Navigates to customize the gradient"; +/* No comment provided by engineer. */ +"Navigates to layout selection screen" = "Navigates to layout selection screen"; + /* translators: %s: Select control button label e.g. Small translators: %s: Select control button label e.g. \"Button width\" */ "Navigates to select %s" = "Navigates to select %s"; @@ -4513,6 +4529,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Table view title for the quick start section. */ "Next Steps" = "Next Steps"; +/* Accessibility label for the button which shows the previous month in the monthly calendar view */ +"Next month" = "Next month"; + /* Accessibility label for the next notification button */ "Next notification" = "Next notification"; @@ -4611,6 +4630,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ Text shown when there is no data to display in the stats list view. */ "No data yet" = "No data yet"; +/* Accessibility label for no currently selected range. */ +"No date range selected" = "No date range selected"; + /* Title for the view when there aren't any fixed threats to display */ "No fixed threats" = "No fixed threats"; @@ -4886,12 +4908,18 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* A subtitle with more detailed info for the user when no WordPress.com sites could be found. */ "Once you create a WordPress.com site, you can reblog content that you like to your own site." = "Once you create a WordPress.com site, you can reblog content that you like to your own site."; +/* No comment provided by engineer. */ +"One" = "One"; + /* Subtitle displayed when the user has removed all Insights from display. */ "Only see the most relevant stats. Add insights to fit your needs." = "Only see the most relevant stats. Add insights to fit your needs."; /* No comment provided by engineer. */ "Only show excerpt" = "Only show excerpt"; +/* Message telling the user that they've only enabled limited photo library permissions for the app. */ +"Only the selected photos you've given access to are available." = "Only the selected photos you've given access to are available."; + /* An informal exclaimation that means `something went wrong`. Title for the view when there's an error loading Activity Log Title for the view when there's an error loading scan status @@ -5478,6 +5506,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Description of a Quick Start Tour */ "Preview your new site to see what your visitors will see." = "Preview your new site to see what your visitors will see."; +/* Accessibility label for the button which shows the previous month in the monthly calendar view */ +"Previous month" = "Previous month"; + /* Accessibility label for the previous notification button */ "Previous notification" = "Previous notification"; @@ -5775,7 +5806,7 @@ translators: %s: Select control button label e.g. \"Button width\" */ "Remove Site Icon" = "Remove Site Icon"; /* No comment provided by engineer. */ -"Remove as Featured Image " = "Remove as Featured Image "; +"Remove as Featured Image" = "Remove as Featured Image"; /* No comment provided by engineer. */ "Remove block" = "Remove block"; @@ -6235,6 +6266,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Register Domain - Domain contact information field placeholder for Country */ "Select Country" = "Select Country"; +/* Title of button that allows the user to select more photos to access within the app */ +"Select More" = "Select More"; + /* Blog Picker's Title */ "Select Site" = "Dewiswch wefan"; @@ -6298,6 +6332,12 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Error message when user tries a no longer existent video media object. */ "Selected media is unavailable." = "Selected media is unavailable."; +/* Accessibility label for summary of currently single date. %1$@ is the date */ +"Selected range: %1$@ only" = "Selected range: %1$@ only"; + +/* Accessibility label for summary of currently selected range. %1$@ is the start date, %2$@ is the end date. */ +"Selected range: %1$@ to %2$@" = "Selected range: %1$@ to %2$@"; + /* translators: %s: Select font size option value e.g: \"Selected: Large\". translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Selected: %s" = "Selected: %s"; @@ -6358,7 +6398,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Set Parent" = "Set Parent"; /* No comment provided by engineer. */ -"Set as Featured Image " = "Set as Featured Image "; +"Set as Featured Image" = "Set as Featured Image"; /* Label for a button that sets the selected page as the site's Homepage */ "Set as Homepage" = "Set as Homepage"; @@ -6576,6 +6616,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Title for the Language Picker View */ "Site Language" = "Iaith Gwefan"; +/* Title for the site menu view on the My Site screen */ +"Site Menu" = "Site Menu"; + /* Describes a site redirect domain */ "Site Redirect" = "Ailgyfeirio Gwefan"; @@ -6763,7 +6806,6 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Button title for Spam comment state. Marks comment as spam. - Spam Title of spam Comments filter. */ "Spam" = "Sbam"; @@ -7106,7 +7148,8 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Description shown when a user logs in with Google but no matching WordPress.com account is found */ "The Google account \"%@\" doesn't match any account on WordPress.com" = "The Google account \"%@\" doesn't match any account on WordPress.com"; -/* Message of error prompt shown when a user tries to perform an action without an internet connection. */ +/* Error message shown when a media upload fails because the user isn't connected to the Internet. + Message of error prompt shown when a user tries to perform an action without an internet connection. */ "The Internet connection appears to be offline." = "Mae'n ymddangos bod y cysylltiad Rhyngrwyd all-lein."; /* Message informing the user that the site title can only be changed by an administrator user. */ @@ -7145,8 +7188,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Message shown when an image failed to load while trying to add it to the Media library. */ "The image could not be added to the Media Library." = "The image could not be added to the Media Library."; -/* Error message shown when a media upload fails because the user isn't connected to the internet. - Message of error prompt shown when a user tries to perform an action without an internet connection. */ +/* Message of error prompt shown when a user tries to perform an action without an internet connection. */ "The internet connection appears to be offline." = "Mae'n ymddangos bod y cysylltiad rhyngrwyd all-lein."; /* Message shown when an asset failed to load while trying to add it to the Media library. */ @@ -7182,6 +7224,12 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Description shown in alert to confirm skipping all quick start items */ "The quick start tour will guide you through building a basic site. Are you sure you want to skip? " = "The quick start tour will guide you through building a basic site. Are you sure you want to skip? "; +/* A failure reason for when the request couldn't be serialized. */ +"The serialization of the request failed." = "The serialization of the request failed."; + +/* A failure reason for when the response couldn't be serialized. */ +"The serialization of the response failed." = "The serialization of the response failed."; + /* No comment provided by engineer. */ "The server returned an empty response. This usually means you need to increase the memory limit for your site." = "Mae'r gweinydd wedi anfon ymateb gwag. Mae hyn yn golygu fel arfer fod angen cynyddu'r terfyn cof ar gyfer eich gwefan."; @@ -7282,6 +7330,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Error message informing the user that there was a problem blocking posts from a site from their reader. */ "There was a problem blocking posts from the specified site." = "Bu anhawster wrth rwystro cofnodion o'r wefan honno."; +/* A general error message shown to the user when there was an API communication failure. */ +"There was a problem communicating with the site." = "There was a problem communicating with the site."; + /* Message for the warning shown to the user when the app realizes there should be an auth token but there isn't one. */ "There was a problem connecting to WordPress.com. Please log in again." = "Bu anhawster wrth gysylltu â WordPress.com. Mewngofnodwch eto."; @@ -7450,12 +7501,18 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Message displayed when a threat is ignored successfully. */ "Threat ignored." = "Threat ignored."; +/* No comment provided by engineer. */ +"Three" = "Three"; + /* Thumbnail image size. Should be the same as in core WP. */ "Thumbnail" = "Llun bach"; /* Message shown if a thumbnail preview of a media item unavailable. */ "Thumbnail unavailable." = "Thumbnail unavailable."; +/* No comment provided by engineer. */ +"Tiled gallery settings" = "Tiled gallery settings"; + /* Blog Writing Settings: Time Format Writing Time Format Settings Title */ "Time Format" = "Time Format"; @@ -7600,13 +7657,16 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* No comment provided by engineer. */ "Transform block…" = "Transform block…"; -/* Accessibility label for trash buttons in nav bars +/* Accessibility label for trash button to delete items from the user's media library + Accessibility label for trash buttons in nav bars Button title for Trash comment state. - Trash button title Trashes a comment Trashes the comment */ "Trash" = "Dileu"; +/* Accessibility hint for trash button to delete items from the user's media library */ +"Trash selected media" = "Trash selected media"; + /* Title of the trash page confirmation alert. */ "Trash this page?" = "Trash this page?"; @@ -7687,6 +7747,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Title for the setting to edit the twitter username used when sharing to twitter. */ "Twitter Username" = "Enw Defnyddiwr Twitter"; +/* No comment provided by engineer. */ +"Two" = "Two"; + /* Type menu item in share extension. */ "Type" = "Type"; @@ -7783,7 +7846,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Unable to play video" = "Unable to play video"; /* No comment provided by engineer. */ -"Unable to read the WordPress site at that URL. Tap 'Need Help?' to view the FAQ." = "Methu canfod gwefan WordPress ar y URL yma. Tapiwch 'Angen Cymorth?' i weld y Cwestiynau Cyffredin."; +"Unable to read the WordPress site at that URL. Tap 'Need more help?' to view the FAQ." = "Unable to read the WordPress site at that URL. Tap 'Need more help?' to view the FAQ."; /* Title for the Jetpack Restore Failed message. */ "Unable to restore your site" = "Unable to restore your site"; @@ -7866,6 +7929,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Underline" = "Tanlinellu"; /* Button in the notification presented in Reader when a post removed from saved for later + Button title. Reverts a comment moderation action. Button title. Reverts the previous notification operation Revert an operation The title of an 'undo' button. Tapping the button moves a trashed page out of the trash folder. @@ -8524,9 +8588,13 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Blog Writing Settings: Weeks starts on */ "Week starts on" = "Week starts on"; -/* Setting: indicates if the site reports its Weekly Roundup */ +/* Setting: indicates if the site reports its Weekly Roundup + Title of Weekly Roundup push notification */ "Weekly Roundup" = "Weekly Roundup"; +/* Title of Weekly Roundup push notification. %@ is a placeholder and will be replaced with the title of one of the user's websites. */ +"Weekly Roundup: %@" = "Weekly Roundup: %@"; + /* Title of Weeks stats filter. */ "Weeks" = "Wythnos"; @@ -8830,12 +8898,12 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* A text for subtitle label on Login epilogue screen */ "You can switch sites at any time." = "You can switch sites at any time."; +/* Prompt shown on the Blogging Reminders Settings screen. */ +"You can update this any time" = "You can update this any time"; + /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "You can update this any time via My Site > Site Settings"; -/* Prompt shown on the Blogging Reminders Settings screen. */ -"You can update this anytime" = "You can update this anytime"; - /* No comment provided by engineer. */ "You cannot use that email address to signup. We are having problems with them blocking some of our email. Please use another email provider." = "Nid oes modd i chi ddefnyddio'r cyfeiriad e-bost yna i ymuno. Mae gennym anhawster ohonynt yn rhwystro rhai o'n e-byst. Defnyddiwch e-bost arall."; @@ -9059,6 +9127,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* The default Jetpack view message */ "Your website credentials will not be stored and are used only for the purpose of installing Jetpack." = "Your website credentials will not be stored and are used only for the purpose of installing Jetpack."; +/* Prompt displayed as part of the stats Weekly Roundup push notification. */ +"Your weekly roundup is ready, tap here to see the details!" = "Your weekly roundup is ready, tap here to see the details!"; + /* Describes the expected behavior when the user disables in-app notifications in Reader Comments. */ "You’re following this conversation. You will receive an email and a notification whenever a new comment is made." = "You’re following this conversation. You will receive an email and a notification whenever a new comment is made."; diff --git a/WordPress/Resources/da.lproj/Localizable.strings b/WordPress/Resources/da.lproj/Localizable.strings index df38b99c9368..a781777dfd30 100644 --- a/WordPress/Resources/da.lproj/Localizable.strings +++ b/WordPress/Resources/da.lproj/Localizable.strings @@ -468,7 +468,8 @@ translators: Block name. %s: The localized block name */ /* Label for the Activity Type filter button when there are more than 1 activity type selected */ "Activity Type (%1$d)" = "Activity Type (%1$d)"; -/* Remove asset from media picker list */ +/* Accessibility label for add button to add items to the user's media library + Remove asset from media picker list */ "Add" = "Tilføj"; /* Action for Media Picker to indicate selection of media. The argument in the string represents the number of elements (as numeric digits) selected */ @@ -564,6 +565,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Add menu item to children" = "Add menu item to children"; +/* Accessibility hint for add button to add items to the user's media library */ +"Add new media" = "Add new media"; + /* Screen reader text for Menus button that adds a new menu to a site. */ "Add new menu" = "Add new menu"; @@ -704,6 +708,12 @@ translators: Block name. %s: The localized block name */ /* Title of a row displayed on the debug screen used to indicate whether crash logs should be forced to send, even if they otherwise wouldn't */ "Always Send Crash Logs" = "Always Send Crash Logs"; +/* A failure reason for when an error HTTP status code was returned from the site, with the specific error code. */ +"An HTTP error code %i was returned." = "An HTTP error code %i was returned."; + +/* A failure reason for when an error HTTP status code was returned from the site. */ +"An HTTP error code was returned." = "An HTTP error code was returned."; + /* Error message when loading failed because there's no connection */ "An active internet connection is required" = "An active internet connection is required"; @@ -756,6 +766,9 @@ translators: Block name. %s: The localized block name */ /* Text displayed when a stat section failed to load. */ "An error occurred." = "An error occurred."; +/* A failure reason for when the error that occured wasn't able to be determined. */ +"An unknown error occurred." = "An unknown error occurred."; + /* Error message shown when a media upload fails for unknown reason and the user should try again. */ "An unknown error occurred. Please try again." = "An unknown error occurred. Please try again."; @@ -817,18 +830,9 @@ translators: Block name. %s: The localized block name */ /* Message prompting the user to confirm that they want to disconnect Jetpack from the site. */ "Are you sure you want to disconnect Jetpack from the site?" = "Are you sure you want to disconnect Jetpack from the site?"; -/* Message asking for confirmation before marking a comment as spam */ -"Are you sure you want to mark this comment as Spam?" = "Are you sure you want to mark this comment as Spam?"; - -/* Message asking for confirmation before marking a comment as trash */ -"Are you sure you want to mark this comment as Trash?" = "Are you sure you want to mark this comment as Trash?"; - /* Message prompting the user to confirm that they want to permanently delete a group of media items. */ "Are you sure you want to permanently delete these items?" = "Are you sure you want to permanently delete these items?"; -/* Message asking for confirmation on comment deletion */ -"Are you sure you want to permanently delete this comment?" = "Are you sure you want to permanently delete this comment?"; - /* Message prompting the user to confirm that they want to permanently delete a media item. Should match Calypso. */ "Are you sure you want to permanently delete this item?" = "Are you sure you want to permanently delete this item?"; @@ -1292,6 +1296,9 @@ translators: Block name. %s: The localized block name */ Main title */ "Change Password" = "Change Password"; +/* Title of button that takes user to the system Settings section for the app */ +"Change Settings" = "Change Settings"; + /* Title of an alert prompting the user that they are about to change the blog they are posting to. */ "Change Site" = "Skift websted"; @@ -1587,6 +1594,9 @@ translators: Block name. %s: The localized block name */ My First Post */ "Comment on" = "Comment on"; +/* Message displayed when approving a comment succeeds. */ +"Comment set to approved." = "Comment set to approved."; + /* Message displayed when pending a comment succeeds. */ "Comment set to pending." = "Comment set to pending."; @@ -1677,8 +1687,7 @@ translators: Block name. %s: The localized block name */ /* Section title for the configure table section in the blog details screen */ "Configure" = "Konfigurer"; -/* Confirm - Verb. Title for Jetpack Restore confirm button. */ +/* Verb. Title for Jetpack Restore confirm button. */ "Confirm" = "Bekræft"; /* Close Account alert title */ @@ -2117,7 +2126,8 @@ translators: Block name. %s: The localized block name */ /* Title for the app appearance setting for dark mode */ "Dark" = "Dark"; -/* Action title. Noun. Opens the user's WordPress.com dashboard in an external browser. */ +/* Action title. Noun. Opens the user's WordPress.com dashboard in an external browser. + Title for dashboard view on the My Site screen */ "Dashboard" = "Kontrolpanel"; /* Title for a threat that includes the number of database rows affected */ @@ -2174,7 +2184,6 @@ translators: Block name. %s: The localized block name */ "Defaults for New Posts" = "Defaults for New Posts"; /* Delete - Delete button title Delete button title for the warning shown to the user when he refuses to re-login when the authToken is missing. Title for button that permanently deletes a media item (photo / video) Title for button that permanently deletes one or more media items (photos / videos) @@ -2533,7 +2542,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Each block has its own settings. To find them, tap on a block. Its settings will appear on the toolbar at the bottom of the screen." = "Each block has its own settings. To find them, tap on a block. Its settings will appear on the toolbar at the bottom of the screen."; -/* Edit the post. +/* Accessibility label for edit button to enable multi selection mode in the user's media library + Edit the post. Editing GIF alert default action button. Edits a Comment Edits the comment @@ -2740,6 +2750,9 @@ translators: Block name. %s: The localized block name */ /* Secondary message shown when there are no domains that match the user entered text. */ "Enter different words above and we'll look for an address that matches it." = "Enter different words above and we'll look for an address that matches it."; +/* Accessibility hint for edit button to enable multi selection mode in the user's media library */ +"Enter edit mode to enable multi select to delete" = "Enter edit mode to enable multi select to delete"; + /* (placeholder) Help enter WordPress password Placeholder of a field to type a password to protect the post. */ "Enter password" = "Indtast adgangskode"; @@ -2790,9 +2803,6 @@ translators: Block name. %s: The localized block name */ /* There was an error activating a plugin, placeholder is the plugin name */ "Error activating %@." = "Error activating %@."; -/* Message shown when approving a Comment fails. */ -"Error approving comment" = "Error approving comment"; - /* Message displayed when approving a comment fails. */ "Error approving comment." = "Error approving comment."; @@ -2802,9 +2812,6 @@ translators: Block name. %s: The localized block name */ /* There was an error deactivating a plugin, placeholder is the plugin name */ "Error deactivating %@." = "Error deactivating %@."; -/* Message shown when deleting a Comment fails. */ -"Error deleting comment" = "Error deleting comment"; - /* Message displayed when deleting a comment fails. */ "Error deleting comment." = "Error deleting comment."; @@ -2832,9 +2839,6 @@ translators: Block name. %s: The localized block name */ /* Messaged displayed when fetching plugins failed. */ "Error loading plugins" = "Error loading plugins"; -/* Message shown when marking a Comment as spam fails. */ -"Error marking comment as spam" = "Error marking comment as spam"; - /* Message displayed when spamming a comment fails. */ "Error marking comment as spam." = "Error marking comment as spam."; @@ -2874,12 +2878,12 @@ translators: Block name. %s: The localized block name */ /* Generic message shown when there was an error trying to re-send email verification. */ "Error sending verification email. Check your connection and try again." = "Error sending verification email. Check your connection and try again."; +/* Message displayed when approving a comment fails. */ +"Error setting comment to approved." = "Error setting comment to approved."; + /* Message displayed when pending a comment fails. */ "Error setting comment to pending." = "Error setting comment to pending."; -/* Message shown when unapproving a Comment fails. */ -"Error unapproving comment" = "Error unapproving comment"; - /* There was an error updating a plugin, placeholder is the plugin name */ "Error updating %@." = "Error updating %@."; @@ -3199,6 +3203,9 @@ translators: Block name. %s: The localized block name */ /* Next web page */ "Forward" = "Viderestil"; +/* No comment provided by engineer. */ +"Four" = "Four"; + /* Browse free themes selection title */ "Free" = "Free"; @@ -3235,6 +3242,9 @@ translators: Block name. %s: The localized block name */ /* translators: accessibility text. %s: gallery caption. */ "Gallery caption. %s" = "Gallery caption. %s"; +/* No comment provided by engineer. */ +"Gallery style" = "Gallery style"; + /* An example tag used in the login prologue screens. */ "Gardening" = "Gardening"; @@ -3853,6 +3863,9 @@ translators: Block name. %s: The localized block name */ User's Last Name */ "Last Name" = "Last Name"; +/* Content of a weekly roundup push notification containing stats about the user's site. The % markers are placeholders and will be replaced by the appropriate number of views, comments, and likes. The numbers indicate the order, so they can be rearranged if necessary – 1 is views, 2 is comments, 3 is likes. */ +"Last week you had %1$d views, %2$d comments and %3$d likes." = "Last week you had %1$d views, %2$d comments and %3$d likes."; + /* Insights latest post summary header */ "Latest Post Summary" = "Latest Post Summary"; @@ -4442,6 +4455,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Navigates to customize the gradient" = "Navigates to customize the gradient"; +/* No comment provided by engineer. */ +"Navigates to layout selection screen" = "Navigates to layout selection screen"; + /* translators: %s: Select control button label e.g. Small translators: %s: Select control button label e.g. \"Button width\" */ "Navigates to select %s" = "Navigates to select %s"; @@ -4513,6 +4529,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Table view title for the quick start section. */ "Next Steps" = "Next Steps"; +/* Accessibility label for the button which shows the previous month in the monthly calendar view */ +"Next month" = "Next month"; + /* Accessibility label for the next notification button */ "Next notification" = "Next notification"; @@ -4611,6 +4630,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ Text shown when there is no data to display in the stats list view. */ "No data yet" = "No data yet"; +/* Accessibility label for no currently selected range. */ +"No date range selected" = "No date range selected"; + /* Title for the view when there aren't any fixed threats to display */ "No fixed threats" = "No fixed threats"; @@ -4886,12 +4908,18 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* A subtitle with more detailed info for the user when no WordPress.com sites could be found. */ "Once you create a WordPress.com site, you can reblog content that you like to your own site." = "Once you create a WordPress.com site, you can reblog content that you like to your own site."; +/* No comment provided by engineer. */ +"One" = "One"; + /* Subtitle displayed when the user has removed all Insights from display. */ "Only see the most relevant stats. Add insights to fit your needs." = "Only see the most relevant stats. Add insights to fit your needs."; /* No comment provided by engineer. */ "Only show excerpt" = "Only show excerpt"; +/* Message telling the user that they've only enabled limited photo library permissions for the app. */ +"Only the selected photos you've given access to are available." = "Only the selected photos you've given access to are available."; + /* An informal exclaimation that means `something went wrong`. Title for the view when there's an error loading Activity Log Title for the view when there's an error loading scan status @@ -5478,6 +5506,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Description of a Quick Start Tour */ "Preview your new site to see what your visitors will see." = "Preview your new site to see what your visitors will see."; +/* Accessibility label for the button which shows the previous month in the monthly calendar view */ +"Previous month" = "Previous month"; + /* Accessibility label for the previous notification button */ "Previous notification" = "Previous notification"; @@ -5775,7 +5806,7 @@ translators: %s: Select control button label e.g. \"Button width\" */ "Remove Site Icon" = "Remove Site Icon"; /* No comment provided by engineer. */ -"Remove as Featured Image " = "Remove as Featured Image "; +"Remove as Featured Image" = "Remove as Featured Image"; /* No comment provided by engineer. */ "Remove block" = "Remove block"; @@ -6235,6 +6266,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Register Domain - Domain contact information field placeholder for Country */ "Select Country" = "Select Country"; +/* Title of button that allows the user to select more photos to access within the app */ +"Select More" = "Select More"; + /* Blog Picker's Title */ "Select Site" = "Vælg websted"; @@ -6298,6 +6332,12 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Error message when user tries a no longer existent video media object. */ "Selected media is unavailable." = "Selected media is unavailable."; +/* Accessibility label for summary of currently single date. %1$@ is the date */ +"Selected range: %1$@ only" = "Selected range: %1$@ only"; + +/* Accessibility label for summary of currently selected range. %1$@ is the start date, %2$@ is the end date. */ +"Selected range: %1$@ to %2$@" = "Selected range: %1$@ to %2$@"; + /* translators: %s: Select font size option value e.g: \"Selected: Large\". translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Selected: %s" = "Selected: %s"; @@ -6358,7 +6398,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Set Parent" = "Set Parent"; /* No comment provided by engineer. */ -"Set as Featured Image " = "Set as Featured Image "; +"Set as Featured Image" = "Set as Featured Image"; /* Label for a button that sets the selected page as the site's Homepage */ "Set as Homepage" = "Set as Homepage"; @@ -6576,6 +6616,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Title for the Language Picker View */ "Site Language" = "Webstedets sprog"; +/* Title for the site menu view on the My Site screen */ +"Site Menu" = "Site Menu"; + /* Describes a site redirect domain */ "Site Redirect" = "Site Redirect"; @@ -6763,7 +6806,6 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Button title for Spam comment state. Marks comment as spam. - Spam Title of spam Comments filter. */ "Spam" = "Spam"; @@ -7106,7 +7148,8 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Description shown when a user logs in with Google but no matching WordPress.com account is found */ "The Google account \"%@\" doesn't match any account on WordPress.com" = "The Google account \"%@\" doesn't match any account on WordPress.com"; -/* Message of error prompt shown when a user tries to perform an action without an internet connection. */ +/* Error message shown when a media upload fails because the user isn't connected to the Internet. + Message of error prompt shown when a user tries to perform an action without an internet connection. */ "The Internet connection appears to be offline." = "Internetforbindelsen ser ud til at være nede."; /* Message informing the user that the site title can only be changed by an administrator user. */ @@ -7145,8 +7188,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Message shown when an image failed to load while trying to add it to the Media library. */ "The image could not be added to the Media Library." = "The image could not be added to the Media Library."; -/* Error message shown when a media upload fails because the user isn't connected to the internet. - Message of error prompt shown when a user tries to perform an action without an internet connection. */ +/* Message of error prompt shown when a user tries to perform an action without an internet connection. */ "The internet connection appears to be offline." = "Internetforbindelsen ser ud til at være nede."; /* Message shown when an asset failed to load while trying to add it to the Media library. */ @@ -7182,6 +7224,12 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Description shown in alert to confirm skipping all quick start items */ "The quick start tour will guide you through building a basic site. Are you sure you want to skip? " = "The quick start tour will guide you through building a basic site. Are you sure you want to skip? "; +/* A failure reason for when the request couldn't be serialized. */ +"The serialization of the request failed." = "The serialization of the request failed."; + +/* A failure reason for when the response couldn't be serialized. */ +"The serialization of the response failed." = "The serialization of the response failed."; + /* No comment provided by engineer. */ "The server returned an empty response. This usually means you need to increase the memory limit for your site." = "The server returned an empty response. This usually means you need to increase the memory limit for your site."; @@ -7282,6 +7330,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Error message informing the user that there was a problem blocking posts from a site from their reader. */ "There was a problem blocking posts from the specified site." = "There was a problem blocking posts from the specified site."; +/* A general error message shown to the user when there was an API communication failure. */ +"There was a problem communicating with the site." = "There was a problem communicating with the site."; + /* Message for the warning shown to the user when the app realizes there should be an auth token but there isn't one. */ "There was a problem connecting to WordPress.com. Please log in again." = "There was a problem connecting to WordPress.com. Please log in again."; @@ -7450,12 +7501,18 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Message displayed when a threat is ignored successfully. */ "Threat ignored." = "Threat ignored."; +/* No comment provided by engineer. */ +"Three" = "Three"; + /* Thumbnail image size. Should be the same as in core WP. */ "Thumbnail" = "Miniaturebillede"; /* Message shown if a thumbnail preview of a media item unavailable. */ "Thumbnail unavailable." = "Thumbnail unavailable."; +/* No comment provided by engineer. */ +"Tiled gallery settings" = "Tiled gallery settings"; + /* Blog Writing Settings: Time Format Writing Time Format Settings Title */ "Time Format" = "Time Format"; @@ -7600,13 +7657,16 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* No comment provided by engineer. */ "Transform block…" = "Transform block…"; -/* Accessibility label for trash buttons in nav bars +/* Accessibility label for trash button to delete items from the user's media library + Accessibility label for trash buttons in nav bars Button title for Trash comment state. - Trash button title Trashes a comment Trashes the comment */ "Trash" = "Slet"; +/* Accessibility hint for trash button to delete items from the user's media library */ +"Trash selected media" = "Trash selected media"; + /* Title of the trash page confirmation alert. */ "Trash this page?" = "Trash this page?"; @@ -7687,6 +7747,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Title for the setting to edit the twitter username used when sharing to twitter. */ "Twitter Username" = "Twitter-brugernavn"; +/* No comment provided by engineer. */ +"Two" = "Two"; + /* Type menu item in share extension. */ "Type" = "Type"; @@ -7783,7 +7846,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Unable to play video" = "Unable to play video"; /* No comment provided by engineer. */ -"Unable to read the WordPress site at that URL. Tap 'Need Help?' to view the FAQ." = "Fandt ikke et WordPress websted på den URL. Tryk 'Behov for hjælp?' for at læse FAQ."; +"Unable to read the WordPress site at that URL. Tap 'Need more help?' to view the FAQ." = "Unable to read the WordPress site at that URL. Tap 'Need more help?' to view the FAQ."; /* Title for the Jetpack Restore Failed message. */ "Unable to restore your site" = "Unable to restore your site"; @@ -7866,6 +7929,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Underline" = "Underline"; /* Button in the notification presented in Reader when a post removed from saved for later + Button title. Reverts a comment moderation action. Button title. Reverts the previous notification operation Revert an operation The title of an 'undo' button. Tapping the button moves a trashed page out of the trash folder. @@ -8524,9 +8588,13 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Blog Writing Settings: Weeks starts on */ "Week starts on" = "Week starts on"; -/* Setting: indicates if the site reports its Weekly Roundup */ +/* Setting: indicates if the site reports its Weekly Roundup + Title of Weekly Roundup push notification */ "Weekly Roundup" = "Weekly Roundup"; +/* Title of Weekly Roundup push notification. %@ is a placeholder and will be replaced with the title of one of the user's websites. */ +"Weekly Roundup: %@" = "Weekly Roundup: %@"; + /* Title of Weeks stats filter. */ "Weeks" = "Uger"; @@ -8830,12 +8898,12 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* A text for subtitle label on Login epilogue screen */ "You can switch sites at any time." = "You can switch sites at any time."; +/* Prompt shown on the Blogging Reminders Settings screen. */ +"You can update this any time" = "You can update this any time"; + /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "You can update this any time via My Site > Site Settings"; -/* Prompt shown on the Blogging Reminders Settings screen. */ -"You can update this anytime" = "You can update this anytime"; - /* No comment provided by engineer. */ "You cannot use that email address to signup. We are having problems with them blocking some of our email. Please use another email provider." = "Du kan ikke bruge den e-mail-adresse ved tilmelding. Vi har problemer med, at de blokerer nogle af vores e-mails. Benyt venligst en anden e-mail-udbyder."; @@ -9059,6 +9127,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* The default Jetpack view message */ "Your website credentials will not be stored and are used only for the purpose of installing Jetpack." = "Your website credentials will not be stored and are used only for the purpose of installing Jetpack."; +/* Prompt displayed as part of the stats Weekly Roundup push notification. */ +"Your weekly roundup is ready, tap here to see the details!" = "Your weekly roundup is ready, tap here to see the details!"; + /* Describes the expected behavior when the user disables in-app notifications in Reader Comments. */ "You’re following this conversation. You will receive an email and a notification whenever a new comment is made." = "You’re following this conversation. You will receive an email and a notification whenever a new comment is made."; diff --git a/WordPress/Resources/de.lproj/Localizable.strings b/WordPress/Resources/de.lproj/Localizable.strings index 3c8cee9366e2..38f90f841e01 100644 --- a/WordPress/Resources/de.lproj/Localizable.strings +++ b/WordPress/Resources/de.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2022-01-16 20:30:02+0000 */ +/* Translation-Revision-Date: 2022-01-25 10:12:31+0000 */ /* Plural-Forms: nplurals=2; plural=n != 1; */ /* Generator: GlotPress/3.0.0-alpha.2 */ /* Language: de */ @@ -468,7 +468,8 @@ translators: Block name. %s: The localized block name */ /* Label for the Activity Type filter button when there are more than 1 activity type selected */ "Activity Type (%1$d)" = "Aktivitätstyp (%1$d)"; -/* Remove asset from media picker list */ +/* Accessibility label for add button to add items to the user's media library + Remove asset from media picker list */ "Add" = "Hinzufügen"; /* Action for Media Picker to indicate selection of media. The argument in the string represents the number of elements (as numeric digits) selected */ @@ -564,6 +565,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Add menu item to children" = "Bei untergeordneten Einträgen Menüeintrag hinzufügen"; +/* Accessibility hint for add button to add items to the user's media library */ +"Add new media" = "Add new media"; + /* Screen reader text for Menus button that adds a new menu to a site. */ "Add new menu" = "Neues Menü hinzufügen"; @@ -704,6 +708,12 @@ translators: Block name. %s: The localized block name */ /* Title of a row displayed on the debug screen used to indicate whether crash logs should be forced to send, even if they otherwise wouldn't */ "Always Send Crash Logs" = "Crash-Logs immer senden"; +/* A failure reason for when an error HTTP status code was returned from the site, with the specific error code. */ +"An HTTP error code %i was returned." = "Es wurde ein HTTP-Fehlercode %i zurückgegeben."; + +/* A failure reason for when an error HTTP status code was returned from the site. */ +"An HTTP error code was returned." = "Es wurde ein HTTP-Fehlercode zurückgegeben."; + /* Error message when loading failed because there's no connection */ "An active internet connection is required" = "Es ist eine aktive Internetverbindung erforderlich."; @@ -756,6 +766,9 @@ translators: Block name. %s: The localized block name */ /* Text displayed when a stat section failed to load. */ "An error occurred." = "Ein Fehler ist aufgetreten."; +/* A failure reason for when the error that occured wasn't able to be determined. */ +"An unknown error occurred." = "Es ist ein unbekannter Fehler aufgetreten."; + /* Error message shown when a media upload fails for unknown reason and the user should try again. */ "An unknown error occurred. Please try again." = "Ein unbekannter Fehler ist aufgetreten. Bitte versuche es erneut."; @@ -817,18 +830,9 @@ translators: Block name. %s: The localized block name */ /* Message prompting the user to confirm that they want to disconnect Jetpack from the site. */ "Are you sure you want to disconnect Jetpack from the site?" = "Bist du sicher, dass du Jetpack von der Website trennen möchtest?"; -/* Message asking for confirmation before marking a comment as spam */ -"Are you sure you want to mark this comment as Spam?" = "Bist du sicher, dass du diesen Kommentar als Spam markieren möchtest?"; - -/* Message asking for confirmation before marking a comment as trash */ -"Are you sure you want to mark this comment as Trash?" = "Bist du sicher, dass du diesen Kommentar in den Papierkorb verschieben möchtest?"; - /* Message prompting the user to confirm that they want to permanently delete a group of media items. */ "Are you sure you want to permanently delete these items?" = "Bist Du sicher, dass du die ausgewählten Objekte permanent löschen möchtest?"; -/* Message asking for confirmation on comment deletion */ -"Are you sure you want to permanently delete this comment?" = "Bist du sicher, dass du diesen Kommentar endgültig löschen möchtest?"; - /* Message prompting the user to confirm that they want to permanently delete a media item. Should match Calypso. */ "Are you sure you want to permanently delete this item?" = "Bist du sicher, dass du dieses Element endgültig löschen möchtest?"; @@ -1292,6 +1296,9 @@ translators: Block name. %s: The localized block name */ Main title */ "Change Password" = "Passwort ändern"; +/* Title of button that takes user to the system Settings section for the app */ +"Change Settings" = "Einstellungen ändern"; + /* Title of an alert prompting the user that they are about to change the blog they are posting to. */ "Change Site" = "Website wechseln"; @@ -1587,6 +1594,9 @@ translators: Block name. %s: The localized block name */ My First Post */ "Comment on" = "Kommentar zu"; +/* Message displayed when approving a comment succeeds. */ +"Comment set to approved." = "Kommentar als freigegeben festgelegt."; + /* Message displayed when pending a comment succeeds. */ "Comment set to pending." = "Kommentar als ausstehend festgelegt."; @@ -1677,8 +1687,7 @@ translators: Block name. %s: The localized block name */ /* Section title for the configure table section in the blog details screen */ "Configure" = "Konfigurieren"; -/* Confirm - Verb. Title for Jetpack Restore confirm button. */ +/* Verb. Title for Jetpack Restore confirm button. */ "Confirm" = "Bestätigen"; /* Close Account alert title */ @@ -2117,7 +2126,8 @@ translators: Block name. %s: The localized block name */ /* Title for the app appearance setting for dark mode */ "Dark" = "Dunkel"; -/* Action title. Noun. Opens the user's WordPress.com dashboard in an external browser. */ +/* Action title. Noun. Opens the user's WordPress.com dashboard in an external browser. + Title for dashboard view on the My Site screen */ "Dashboard" = "Dashboard"; /* Title for a threat that includes the number of database rows affected */ @@ -2174,7 +2184,6 @@ translators: Block name. %s: The localized block name */ "Defaults for New Posts" = "Standardeinstellungen für neue Beiträge"; /* Delete - Delete button title Delete button title for the warning shown to the user when he refuses to re-login when the authToken is missing. Title for button that permanently deletes a media item (photo / video) Title for button that permanently deletes one or more media items (photos / videos) @@ -2533,7 +2542,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Each block has its own settings. To find them, tap on a block. Its settings will appear on the toolbar at the bottom of the screen." = "Jeder Block hat eigene Einstellungen. Tippe auf den jeweiligen Block, um sie zu finden. Die Einstellungen werden in der Werkzeugleiste unten auf dem Bildschirm angezeigt."; -/* Edit the post. +/* Accessibility label for edit button to enable multi selection mode in the user's media library + Edit the post. Editing GIF alert default action button. Edits a Comment Edits the comment @@ -2740,6 +2750,9 @@ translators: Block name. %s: The localized block name */ /* Secondary message shown when there are no domains that match the user entered text. */ "Enter different words above and we'll look for an address that matches it." = "Gib oben andere Wörter ein und wir suchen nach einer passenden Adresse."; +/* Accessibility hint for edit button to enable multi selection mode in the user's media library */ +"Enter edit mode to enable multi select to delete" = "Enter edit mode to enable multi select to delete"; + /* (placeholder) Help enter WordPress password Placeholder of a field to type a password to protect the post. */ "Enter password" = "Passwort eingeben"; @@ -2790,9 +2803,6 @@ translators: Block name. %s: The localized block name */ /* There was an error activating a plugin, placeholder is the plugin name */ "Error activating %@." = "Fehler beim Aktivieren von %@."; -/* Message shown when approving a Comment fails. */ -"Error approving comment" = "Fehler beim Genehmigen eines Kommentars"; - /* Message displayed when approving a comment fails. */ "Error approving comment." = "Fehler beim Genehmigen eines Kommentars."; @@ -2802,9 +2812,6 @@ translators: Block name. %s: The localized block name */ /* There was an error deactivating a plugin, placeholder is the plugin name */ "Error deactivating %@." = "Fehler beim Deaktivieren von %@."; -/* Message shown when deleting a Comment fails. */ -"Error deleting comment" = "Fehler beim Löschen eines Kommentars"; - /* Message displayed when deleting a comment fails. */ "Error deleting comment." = "Fehler beim Löschen eines Kommentars."; @@ -2832,9 +2839,6 @@ translators: Block name. %s: The localized block name */ /* Messaged displayed when fetching plugins failed. */ "Error loading plugins" = "Fehler beim Laden der Plugins"; -/* Message shown when marking a Comment as spam fails. */ -"Error marking comment as spam" = "Fehler beim Kennzeichnen eines Kommentars als Spam"; - /* Message displayed when spamming a comment fails. */ "Error marking comment as spam." = "Fehler beim Kennzeichnen eines Kommentars als Spam."; @@ -2874,12 +2878,12 @@ translators: Block name. %s: The localized block name */ /* Generic message shown when there was an error trying to re-send email verification. */ "Error sending verification email. Check your connection and try again." = "Beim Senden der Verifizierungs-E-Mail ist ein Fehler aufgetreten. Überprüfe deine Verbindung und versuche es nochmal."; +/* Message displayed when approving a comment fails. */ +"Error setting comment to approved." = "Fehler beim Festlegen des Kommentars als freigegeben."; + /* Message displayed when pending a comment fails. */ "Error setting comment to pending." = "Fehler beim Festlegen des Kommentars als ausstehend."; -/* Message shown when unapproving a Comment fails. */ -"Error unapproving comment" = "Fehler beim Ablehnen eines Kommentars"; - /* There was an error updating a plugin, placeholder is the plugin name */ "Error updating %@." = "Fehler beim Aktualisieren von %@."; @@ -3199,6 +3203,9 @@ translators: Block name. %s: The localized block name */ /* Next web page */ "Forward" = "Weiter"; +/* No comment provided by engineer. */ +"Four" = "Vier"; + /* Browse free themes selection title */ "Free" = "Kostenlos"; @@ -3235,6 +3242,9 @@ translators: Block name. %s: The localized block name */ /* translators: accessibility text. %s: gallery caption. */ "Gallery caption. %s" = "Bildunterschrift der Galerie. %s"; +/* No comment provided by engineer. */ +"Gallery style" = "Galerie-Stil"; + /* An example tag used in the login prologue screens. */ "Gardening" = "Gärtnern"; @@ -3853,6 +3863,9 @@ translators: Block name. %s: The localized block name */ User's Last Name */ "Last Name" = "Nachname"; +/* Content of a weekly roundup push notification containing stats about the user's site. The % markers are placeholders and will be replaced by the appropriate number of views, comments, and likes. The numbers indicate the order, so they can be rearranged if necessary – 1 is views, 2 is comments, 3 is likes. */ +"Last week you had %1$d views, %2$d comments and %3$d likes." = "Letzte Woche hattest du %1$d Aufrufe, %2$d Kommentare und %3$d Likes."; + /* Insights latest post summary header */ "Latest Post Summary" = "Zusammenfassung der neuesten Beiträge"; @@ -4442,6 +4455,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Navigates to customize the gradient" = "Navigiert zum Anpassen des Verlaufs"; +/* No comment provided by engineer. */ +"Navigates to layout selection screen" = "Navigates to layout selection screen"; + /* translators: %s: Select control button label e.g. Small translators: %s: Select control button label e.g. \"Button width\" */ "Navigates to select %s" = "Navigiert zur Auswahl von %s"; @@ -4513,6 +4529,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Table view title for the quick start section. */ "Next Steps" = "Nächste Schritte"; +/* Accessibility label for the button which shows the previous month in the monthly calendar view */ +"Next month" = "Nächster Monat"; + /* Accessibility label for the next notification button */ "Next notification" = "Nächste Benachrichtigung"; @@ -4611,6 +4630,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ Text shown when there is no data to display in the stats list view. */ "No data yet" = "Noch keine Daten"; +/* Accessibility label for no currently selected range. */ +"No date range selected" = "No date range selected"; + /* Title for the view when there aren't any fixed threats to display */ "No fixed threats" = "Keine behobenen Bedrohungen"; @@ -4886,12 +4908,18 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* A subtitle with more detailed info for the user when no WordPress.com sites could be found. */ "Once you create a WordPress.com site, you can reblog content that you like to your own site." = "Sobald du eine Website bei WordPress.com erstellt hast, kannst du Inhalte, die dir gefallen, auf deiner eigenen Website rebloggen."; +/* No comment provided by engineer. */ +"One" = "Eins"; + /* Subtitle displayed when the user has removed all Insights from display. */ "Only see the most relevant stats. Add insights to fit your needs." = "Zeige nur die relevantesten Statistiken an. Einsichten hinzufügen, die deinem Bedarf entsprechen."; /* No comment provided by engineer. */ "Only show excerpt" = "Nur Textauszug anzeigen"; +/* Message telling the user that they've only enabled limited photo library permissions for the app. */ +"Only the selected photos you've given access to are available." = "Es sind nur die ausgewählten Fotos verfügbar, für die du den Zugriff freigegeben hast."; + /* An informal exclaimation that means `something went wrong`. Title for the view when there's an error loading Activity Log Title for the view when there's an error loading scan status @@ -5478,6 +5506,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Description of a Quick Start Tour */ "Preview your new site to see what your visitors will see." = "Zeige eine Vorschau deiner neuen Website an, um zu sehen, wie sie deinen Besuchern angezeigt wird."; +/* Accessibility label for the button which shows the previous month in the monthly calendar view */ +"Previous month" = "Vorheriger Monat"; + /* Accessibility label for the previous notification button */ "Previous notification" = "Vorherige Benachrichtigung"; @@ -5775,7 +5806,7 @@ translators: %s: Select control button label e.g. \"Button width\" */ "Remove Site Icon" = "Website-Icon entfernen"; /* No comment provided by engineer. */ -"Remove as Featured Image " = "Als Beitragsbild entfernen "; +"Remove as Featured Image" = "Als Beitragsbild entfernen "; /* No comment provided by engineer. */ "Remove block" = "Block entfernen"; @@ -6235,6 +6266,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Register Domain - Domain contact information field placeholder for Country */ "Select Country" = "Land wählen"; +/* Title of button that allows the user to select more photos to access within the app */ +"Select More" = "Mehr auswählen"; + /* Blog Picker's Title */ "Select Site" = "Website auswählen"; @@ -6298,6 +6332,12 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Error message when user tries a no longer existent video media object. */ "Selected media is unavailable." = "Ausgewähltes Medium ist nicht verfügbar."; +/* Accessibility label for summary of currently single date. %1$@ is the date */ +"Selected range: %1$@ only" = "Selected range: %1$@ only"; + +/* Accessibility label for summary of currently selected range. %1$@ is the start date, %2$@ is the end date. */ +"Selected range: %1$@ to %2$@" = "Selected range: %1$@ to %2$@"; + /* translators: %s: Select font size option value e.g: \"Selected: Large\". translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Selected: %s" = "Ausgewählt: %s"; @@ -6358,7 +6398,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Set Parent" = "Übergeordnete festlegen"; /* No comment provided by engineer. */ -"Set as Featured Image " = "Als Beitragsbild festlegen "; +"Set as Featured Image" = "Als Beitragsbild festlegen "; /* Label for a button that sets the selected page as the site's Homepage */ "Set as Homepage" = "Als Homepage festlegen"; @@ -6576,6 +6616,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Title for the Language Picker View */ "Site Language" = "Website-Sprache"; +/* Title for the site menu view on the My Site screen */ +"Site Menu" = "Website-Menü"; + /* Describes a site redirect domain */ "Site Redirect" = "Website-Weiterleitung"; @@ -6763,7 +6806,6 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Button title for Spam comment state. Marks comment as spam. - Spam Title of spam Comments filter. */ "Spam" = "Spam"; @@ -7106,7 +7148,8 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Description shown when a user logs in with Google but no matching WordPress.com account is found */ "The Google account \"%@\" doesn't match any account on WordPress.com" = "Das Google-Konto „%@“ stimmt mit keinem WordPress.com-Konto überein."; -/* Message of error prompt shown when a user tries to perform an action without an internet connection. */ +/* Error message shown when a media upload fails because the user isn't connected to the Internet. + Message of error prompt shown when a user tries to perform an action without an internet connection. */ "The Internet connection appears to be offline." = "Die Internetverbindung scheint offline zu sein."; /* Message informing the user that the site title can only be changed by an administrator user. */ @@ -7145,8 +7188,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Message shown when an image failed to load while trying to add it to the Media library. */ "The image could not be added to the Media Library." = "Das Bild konnte nicht zur Mediathek hinzugefügt werden."; -/* Error message shown when a media upload fails because the user isn't connected to the internet. - Message of error prompt shown when a user tries to perform an action without an internet connection. */ +/* Message of error prompt shown when a user tries to perform an action without an internet connection. */ "The internet connection appears to be offline." = "Die Internetverbindung scheint gerade offline zu sein."; /* Message shown when an asset failed to load while trying to add it to the Media library. */ @@ -7182,6 +7224,12 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Description shown in alert to confirm skipping all quick start items */ "The quick start tour will guide you through building a basic site. Are you sure you want to skip? " = "Die Schnellstart-Tour leitet dich durch die Erstellung einer grundlegenden Website. Bist du sicher, dass du sie überspringen möchtest? "; +/* A failure reason for when the request couldn't be serialized. */ +"The serialization of the request failed." = "The serialization of the request failed."; + +/* A failure reason for when the response couldn't be serialized. */ +"The serialization of the response failed." = "The serialization of the response failed."; + /* No comment provided by engineer. */ "The server returned an empty response. This usually means you need to increase the memory limit for your site." = "Der Server hat eine leere Antwort zurückgesendet. Dies bedeutet normalerweise, dass Du das Speicherlimit auf deiner Website erhöhen musst."; @@ -7282,6 +7330,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Error message informing the user that there was a problem blocking posts from a site from their reader. */ "There was a problem blocking posts from the specified site." = "Es gab ein Problem beim Blockieren der Beiträge dieser spezifischen Website."; +/* A general error message shown to the user when there was an API communication failure. */ +"There was a problem communicating with the site." = "Bei dem Versuch, mit der Website zu kommunizieren, ist ein Problem aufgetreten."; + /* Message for the warning shown to the user when the app realizes there should be an auth token but there isn't one. */ "There was a problem connecting to WordPress.com. Please log in again." = "Es gab ein Problem beim Verbinden mit WordPress.com. Bitte noch einmal anmelden."; @@ -7450,12 +7501,18 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Message displayed when a threat is ignored successfully. */ "Threat ignored." = "Bedrohung ignoriert."; +/* No comment provided by engineer. */ +"Three" = "Drei"; + /* Thumbnail image size. Should be the same as in core WP. */ "Thumbnail" = "Vorschaubild"; /* Message shown if a thumbnail preview of a media item unavailable. */ "Thumbnail unavailable." = "Thumbnail nicht verfügbar."; +/* No comment provided by engineer. */ +"Tiled gallery settings" = "Tiled gallery settings"; + /* Blog Writing Settings: Time Format Writing Time Format Settings Title */ "Time Format" = "Zeitformat"; @@ -7600,13 +7657,16 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* No comment provided by engineer. */ "Transform block…" = "Block umwandeln …"; -/* Accessibility label for trash buttons in nav bars +/* Accessibility label for trash button to delete items from the user's media library + Accessibility label for trash buttons in nav bars Button title for Trash comment state. - Trash button title Trashes a comment Trashes the comment */ "Trash" = "Entfernen"; +/* Accessibility hint for trash button to delete items from the user's media library */ +"Trash selected media" = "Ausgewählte Medien in den Papierkorb legen"; + /* Title of the trash page confirmation alert. */ "Trash this page?" = "Diese Seite in den Papierkorb verschieben?"; @@ -7687,6 +7747,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Title for the setting to edit the twitter username used when sharing to twitter. */ "Twitter Username" = "Twitter-Benutzername"; +/* No comment provided by engineer. */ +"Two" = "Zwei"; + /* Type menu item in share extension. */ "Type" = "Typ"; @@ -7783,7 +7846,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Unable to play video" = "Video konnte nicht abgespielt werden"; /* No comment provided by engineer. */ -"Unable to read the WordPress site at that URL. Tap 'Need Help?' to view the FAQ." = "Es konnte keine WordPress-Website unter dieser Adresse gefunden werden. Bitte tippe „Brauchst du Hilfe?“ an, um die FAQ anzusehen."; +"Unable to read the WordPress site at that URL. Tap 'Need more help?' to view the FAQ." = "Es konnte keine WordPress-Website unter dieser URL gefunden werden. Bitte tippe „Brauchst du Hilfe?“ an, um die FAQ anzuzeigen."; /* Title for the Jetpack Restore Failed message. */ "Unable to restore your site" = "Deine Website kann nicht wiederhergestellt werden"; @@ -7866,6 +7929,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Underline" = "Unterstrichen"; /* Button in the notification presented in Reader when a post removed from saved for later + Button title. Reverts a comment moderation action. Button title. Reverts the previous notification operation Revert an operation The title of an 'undo' button. Tapping the button moves a trashed page out of the trash folder. @@ -8524,9 +8588,13 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Blog Writing Settings: Weeks starts on */ "Week starts on" = "Woche beginnt am"; -/* Setting: indicates if the site reports its Weekly Roundup */ +/* Setting: indicates if the site reports its Weekly Roundup + Title of Weekly Roundup push notification */ "Weekly Roundup" = "Wöchentliche Zusammenfassung"; +/* Title of Weekly Roundup push notification. %@ is a placeholder and will be replaced with the title of one of the user's websites. */ +"Weekly Roundup: %@" = "Wöchentliche Zusammenfassung: %s@"; + /* Title of Weeks stats filter. */ "Weeks" = "Wochen"; @@ -8830,12 +8898,12 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* A text for subtitle label on Login epilogue screen */ "You can switch sites at any time." = "Du kannst die Websites jederzeit wechseln."; +/* Prompt shown on the Blogging Reminders Settings screen. */ +"You can update this any time" = "Du kannst dies jederzeit aktualisieren"; + /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "Unter „Meine Website“ → „Einstellungen“ kannst du dies jederzeit aktualisieren."; -/* Prompt shown on the Blogging Reminders Settings screen. */ -"You can update this anytime" = "Du kannst dies jederzeit aktualisieren"; - /* No comment provided by engineer. */ "You cannot use that email address to signup. We are having problems with them blocking some of our email. Please use another email provider." = "Du kannst diese E-Mail-Adresse nicht zur Registrierung verwenden. Es gibt Probleme, da sie einige unserer E-Mails blockieren. Verwende bitte einen anderen E-Mail-Provider."; @@ -9059,6 +9127,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* The default Jetpack view message */ "Your website credentials will not be stored and are used only for the purpose of installing Jetpack." = "Deine Zugangsdaten werden nicht gespeichert und werden nur für die Installation von Jetpack verwendet."; +/* Prompt displayed as part of the stats Weekly Roundup push notification. */ +"Your weekly roundup is ready, tap here to see the details!" = "Your weekly roundup is ready, tap here to see the details!"; + /* Describes the expected behavior when the user disables in-app notifications in Reader Comments. */ "You’re following this conversation. You will receive an email and a notification whenever a new comment is made." = "Du folgst dieser Unterhaltung. Du erhältst eine E-Mail und eine Benachrichtigung, sobald ein neuer Kommentar hinzugefügt wird."; diff --git a/WordPress/Resources/en-AU.lproj/Localizable.strings b/WordPress/Resources/en-AU.lproj/Localizable.strings index 84c9723aeb3c..67f5627ab4e3 100644 --- a/WordPress/Resources/en-AU.lproj/Localizable.strings +++ b/WordPress/Resources/en-AU.lproj/Localizable.strings @@ -468,7 +468,8 @@ translators: Block name. %s: The localized block name */ /* Label for the Activity Type filter button when there are more than 1 activity type selected */ "Activity Type (%1$d)" = "Activity Type (%1$d)"; -/* Remove asset from media picker list */ +/* Accessibility label for add button to add items to the user's media library + Remove asset from media picker list */ "Add" = "Add"; /* Action for Media Picker to indicate selection of media. The argument in the string represents the number of elements (as numeric digits) selected */ @@ -564,6 +565,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Add menu item to children" = "Add menu item to children"; +/* Accessibility hint for add button to add items to the user's media library */ +"Add new media" = "Add new media"; + /* Screen reader text for Menus button that adds a new menu to a site. */ "Add new menu" = "Add new menu"; @@ -704,6 +708,12 @@ translators: Block name. %s: The localized block name */ /* Title of a row displayed on the debug screen used to indicate whether crash logs should be forced to send, even if they otherwise wouldn't */ "Always Send Crash Logs" = "Always Send Crash Logs"; +/* A failure reason for when an error HTTP status code was returned from the site, with the specific error code. */ +"An HTTP error code %i was returned." = "An HTTP error code %i was returned."; + +/* A failure reason for when an error HTTP status code was returned from the site. */ +"An HTTP error code was returned." = "An HTTP error code was returned."; + /* Error message when loading failed because there's no connection */ "An active internet connection is required" = "An active internet connection is required"; @@ -756,6 +766,9 @@ translators: Block name. %s: The localized block name */ /* Text displayed when a stat section failed to load. */ "An error occurred." = "An error occurred."; +/* A failure reason for when the error that occured wasn't able to be determined. */ +"An unknown error occurred." = "An unknown error occurred."; + /* Error message shown when a media upload fails for unknown reason and the user should try again. */ "An unknown error occurred. Please try again." = "An unknown error occurred. Please try again."; @@ -817,18 +830,9 @@ translators: Block name. %s: The localized block name */ /* Message prompting the user to confirm that they want to disconnect Jetpack from the site. */ "Are you sure you want to disconnect Jetpack from the site?" = "Are you sure you want to disconnect Jetpack from the site?"; -/* Message asking for confirmation before marking a comment as spam */ -"Are you sure you want to mark this comment as Spam?" = "Are you sure you want to mark this comment as Spam?"; - -/* Message asking for confirmation before marking a comment as trash */ -"Are you sure you want to mark this comment as Trash?" = "Are you sure you want to mark this comment as Trash?"; - /* Message prompting the user to confirm that they want to permanently delete a group of media items. */ "Are you sure you want to permanently delete these items?" = "Are you sure you want to permanently delete these items?"; -/* Message asking for confirmation on comment deletion */ -"Are you sure you want to permanently delete this comment?" = "Are you sure you want to permanently delete this comment?"; - /* Message prompting the user to confirm that they want to permanently delete a media item. Should match Calypso. */ "Are you sure you want to permanently delete this item?" = "Are you sure you want to permanently delete this item?"; @@ -1292,6 +1296,9 @@ translators: Block name. %s: The localized block name */ Main title */ "Change Password" = "Change Password"; +/* Title of button that takes user to the system Settings section for the app */ +"Change Settings" = "Change Settings"; + /* Title of an alert prompting the user that they are about to change the blog they are posting to. */ "Change Site" = "Change Site"; @@ -1587,6 +1594,9 @@ translators: Block name. %s: The localized block name */ My First Post */ "Comment on" = "Comment on"; +/* Message displayed when approving a comment succeeds. */ +"Comment set to approved." = "Comment set to approved."; + /* Message displayed when pending a comment succeeds. */ "Comment set to pending." = "Comment set to pending."; @@ -1677,8 +1687,7 @@ translators: Block name. %s: The localized block name */ /* Section title for the configure table section in the blog details screen */ "Configure" = "Configure"; -/* Confirm - Verb. Title for Jetpack Restore confirm button. */ +/* Verb. Title for Jetpack Restore confirm button. */ "Confirm" = "Confirm"; /* Close Account alert title */ @@ -2117,7 +2126,8 @@ translators: Block name. %s: The localized block name */ /* Title for the app appearance setting for dark mode */ "Dark" = "Dark"; -/* Action title. Noun. Opens the user's WordPress.com dashboard in an external browser. */ +/* Action title. Noun. Opens the user's WordPress.com dashboard in an external browser. + Title for dashboard view on the My Site screen */ "Dashboard" = "Dashboard"; /* Title for a threat that includes the number of database rows affected */ @@ -2174,7 +2184,6 @@ translators: Block name. %s: The localized block name */ "Defaults for New Posts" = "Defaults for New Posts"; /* Delete - Delete button title Delete button title for the warning shown to the user when he refuses to re-login when the authToken is missing. Title for button that permanently deletes a media item (photo / video) Title for button that permanently deletes one or more media items (photos / videos) @@ -2533,7 +2542,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Each block has its own settings. To find them, tap on a block. Its settings will appear on the toolbar at the bottom of the screen." = "Each block has its own settings. To find them, tap on a block. Its settings will appear on the toolbar at the bottom of the screen."; -/* Edit the post. +/* Accessibility label for edit button to enable multi selection mode in the user's media library + Edit the post. Editing GIF alert default action button. Edits a Comment Edits the comment @@ -2740,6 +2750,9 @@ translators: Block name. %s: The localized block name */ /* Secondary message shown when there are no domains that match the user entered text. */ "Enter different words above and we'll look for an address that matches it." = "Enter different words above and we'll look for an address that matches it."; +/* Accessibility hint for edit button to enable multi selection mode in the user's media library */ +"Enter edit mode to enable multi select to delete" = "Enter edit mode to enable multi select to delete"; + /* (placeholder) Help enter WordPress password Placeholder of a field to type a password to protect the post. */ "Enter password" = "Enter password"; @@ -2790,9 +2803,6 @@ translators: Block name. %s: The localized block name */ /* There was an error activating a plugin, placeholder is the plugin name */ "Error activating %@." = "Error activating %@."; -/* Message shown when approving a Comment fails. */ -"Error approving comment" = "Error approving comment"; - /* Message displayed when approving a comment fails. */ "Error approving comment." = "Error approving comment."; @@ -2802,9 +2812,6 @@ translators: Block name. %s: The localized block name */ /* There was an error deactivating a plugin, placeholder is the plugin name */ "Error deactivating %@." = "Error deactivating %@."; -/* Message shown when deleting a Comment fails. */ -"Error deleting comment" = "Error deleting comment"; - /* Message displayed when deleting a comment fails. */ "Error deleting comment." = "Error deleting comment."; @@ -2832,9 +2839,6 @@ translators: Block name. %s: The localized block name */ /* Messaged displayed when fetching plugins failed. */ "Error loading plugins" = "Error loading plugins"; -/* Message shown when marking a Comment as spam fails. */ -"Error marking comment as spam" = "Error marking comment as spam"; - /* Message displayed when spamming a comment fails. */ "Error marking comment as spam." = "Error marking comment as spam."; @@ -2874,12 +2878,12 @@ translators: Block name. %s: The localized block name */ /* Generic message shown when there was an error trying to re-send email verification. */ "Error sending verification email. Check your connection and try again." = "Error sending verification email. Check your connection and try again."; +/* Message displayed when approving a comment fails. */ +"Error setting comment to approved." = "Error setting comment to approved."; + /* Message displayed when pending a comment fails. */ "Error setting comment to pending." = "Error setting comment to pending."; -/* Message shown when unapproving a Comment fails. */ -"Error unapproving comment" = "Error unapproving comment"; - /* There was an error updating a plugin, placeholder is the plugin name */ "Error updating %@." = "Error updating %@."; @@ -3199,6 +3203,9 @@ translators: Block name. %s: The localized block name */ /* Next web page */ "Forward" = "Forward"; +/* No comment provided by engineer. */ +"Four" = "Four"; + /* Browse free themes selection title */ "Free" = "Free"; @@ -3235,6 +3242,9 @@ translators: Block name. %s: The localized block name */ /* translators: accessibility text. %s: gallery caption. */ "Gallery caption. %s" = "Gallery caption. %s"; +/* No comment provided by engineer. */ +"Gallery style" = "Gallery style"; + /* An example tag used in the login prologue screens. */ "Gardening" = "Gardening"; @@ -3853,6 +3863,9 @@ translators: Block name. %s: The localized block name */ User's Last Name */ "Last Name" = "Last Name"; +/* Content of a weekly roundup push notification containing stats about the user's site. The % markers are placeholders and will be replaced by the appropriate number of views, comments, and likes. The numbers indicate the order, so they can be rearranged if necessary – 1 is views, 2 is comments, 3 is likes. */ +"Last week you had %1$d views, %2$d comments and %3$d likes." = "Last week you had %1$d views, %2$d comments and %3$d likes."; + /* Insights latest post summary header */ "Latest Post Summary" = "Latest Post Summary"; @@ -4442,6 +4455,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Navigates to customize the gradient" = "Navigates to customize the gradient"; +/* No comment provided by engineer. */ +"Navigates to layout selection screen" = "Navigates to layout selection screen"; + /* translators: %s: Select control button label e.g. Small translators: %s: Select control button label e.g. \"Button width\" */ "Navigates to select %s" = "Navigates to select %s"; @@ -4513,6 +4529,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Table view title for the quick start section. */ "Next Steps" = "Next Steps"; +/* Accessibility label for the button which shows the previous month in the monthly calendar view */ +"Next month" = "Next month"; + /* Accessibility label for the next notification button */ "Next notification" = "Next notification"; @@ -4611,6 +4630,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ Text shown when there is no data to display in the stats list view. */ "No data yet" = "No data yet"; +/* Accessibility label for no currently selected range. */ +"No date range selected" = "No date range selected"; + /* Title for the view when there aren't any fixed threats to display */ "No fixed threats" = "No fixed threats"; @@ -4886,12 +4908,18 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* A subtitle with more detailed info for the user when no WordPress.com sites could be found. */ "Once you create a WordPress.com site, you can reblog content that you like to your own site." = "Once you create a WordPress.com site, you can reblog content that you like to your own site."; +/* No comment provided by engineer. */ +"One" = "One"; + /* Subtitle displayed when the user has removed all Insights from display. */ "Only see the most relevant stats. Add insights to fit your needs." = "Only see the most relevant stats. Add insights to fit your needs."; /* No comment provided by engineer. */ "Only show excerpt" = "Only show excerpt"; +/* Message telling the user that they've only enabled limited photo library permissions for the app. */ +"Only the selected photos you've given access to are available." = "Only the selected photos you've given access to are available."; + /* An informal exclaimation that means `something went wrong`. Title for the view when there's an error loading Activity Log Title for the view when there's an error loading scan status @@ -5478,6 +5506,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Description of a Quick Start Tour */ "Preview your new site to see what your visitors will see." = "Preview your new site to see what your visitors will see."; +/* Accessibility label for the button which shows the previous month in the monthly calendar view */ +"Previous month" = "Previous month"; + /* Accessibility label for the previous notification button */ "Previous notification" = "Previous notification"; @@ -5775,7 +5806,7 @@ translators: %s: Select control button label e.g. \"Button width\" */ "Remove Site Icon" = "Remove Site Icon"; /* No comment provided by engineer. */ -"Remove as Featured Image " = "Remove as Featured Image "; +"Remove as Featured Image" = "Remove as Featured Image"; /* No comment provided by engineer. */ "Remove block" = "Remove block"; @@ -6235,6 +6266,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Register Domain - Domain contact information field placeholder for Country */ "Select Country" = "Select Country"; +/* Title of button that allows the user to select more photos to access within the app */ +"Select More" = "Select More"; + /* Blog Picker's Title */ "Select Site" = "Select Site"; @@ -6298,6 +6332,12 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Error message when user tries a no longer existent video media object. */ "Selected media is unavailable." = "Selected media is unavailable."; +/* Accessibility label for summary of currently single date. %1$@ is the date */ +"Selected range: %1$@ only" = "Selected range: %1$@ only"; + +/* Accessibility label for summary of currently selected range. %1$@ is the start date, %2$@ is the end date. */ +"Selected range: %1$@ to %2$@" = "Selected range: %1$@ to %2$@"; + /* translators: %s: Select font size option value e.g: \"Selected: Large\". translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Selected: %s" = "Selected: %s"; @@ -6358,7 +6398,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Set Parent" = "Set Parent"; /* No comment provided by engineer. */ -"Set as Featured Image " = "Set as Featured Image "; +"Set as Featured Image" = "Set as Featured Image"; /* Label for a button that sets the selected page as the site's Homepage */ "Set as Homepage" = "Set as Homepage"; @@ -6576,6 +6616,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Title for the Language Picker View */ "Site Language" = "Site Language"; +/* Title for the site menu view on the My Site screen */ +"Site Menu" = "Site Menu"; + /* Describes a site redirect domain */ "Site Redirect" = "Site Redirect"; @@ -6763,7 +6806,6 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Button title for Spam comment state. Marks comment as spam. - Spam Title of spam Comments filter. */ "Spam" = "Spam"; @@ -7106,7 +7148,8 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Description shown when a user logs in with Google but no matching WordPress.com account is found */ "The Google account \"%@\" doesn't match any account on WordPress.com" = "The Google account \"%@\" doesn't match any account on WordPress.com"; -/* Message of error prompt shown when a user tries to perform an action without an internet connection. */ +/* Error message shown when a media upload fails because the user isn't connected to the Internet. + Message of error prompt shown when a user tries to perform an action without an internet connection. */ "The Internet connection appears to be offline." = "The Internet connection appears to be offline."; /* Message informing the user that the site title can only be changed by an administrator user. */ @@ -7145,8 +7188,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Message shown when an image failed to load while trying to add it to the Media library. */ "The image could not be added to the Media Library." = "The image could not be added to the Media Library."; -/* Error message shown when a media upload fails because the user isn't connected to the internet. - Message of error prompt shown when a user tries to perform an action without an internet connection. */ +/* Message of error prompt shown when a user tries to perform an action without an internet connection. */ "The internet connection appears to be offline." = "The internet connection appears to be offline."; /* Message shown when an asset failed to load while trying to add it to the Media library. */ @@ -7182,6 +7224,12 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Description shown in alert to confirm skipping all quick start items */ "The quick start tour will guide you through building a basic site. Are you sure you want to skip? " = "The quick start tour will guide you through building a basic site. Are you sure you want to skip? "; +/* A failure reason for when the request couldn't be serialized. */ +"The serialization of the request failed." = "The serialization of the request failed."; + +/* A failure reason for when the response couldn't be serialized. */ +"The serialization of the response failed." = "The serialization of the response failed."; + /* No comment provided by engineer. */ "The server returned an empty response. This usually means you need to increase the memory limit for your site." = "The server returned an empty response. This usually means you need to increase the memory limit for your site."; @@ -7282,6 +7330,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Error message informing the user that there was a problem blocking posts from a site from their reader. */ "There was a problem blocking posts from the specified site." = "There was a problem blocking posts from the specified site."; +/* A general error message shown to the user when there was an API communication failure. */ +"There was a problem communicating with the site." = "There was a problem communicating with the site."; + /* Message for the warning shown to the user when the app realizes there should be an auth token but there isn't one. */ "There was a problem connecting to WordPress.com. Please log in again." = "There was a problem connecting to WordPress.com. Please log in again."; @@ -7450,12 +7501,18 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Message displayed when a threat is ignored successfully. */ "Threat ignored." = "Threat ignored."; +/* No comment provided by engineer. */ +"Three" = "Three"; + /* Thumbnail image size. Should be the same as in core WP. */ "Thumbnail" = "Thumbnail"; /* Message shown if a thumbnail preview of a media item unavailable. */ "Thumbnail unavailable." = "Thumbnail unavailable."; +/* No comment provided by engineer. */ +"Tiled gallery settings" = "Tiled gallery settings"; + /* Blog Writing Settings: Time Format Writing Time Format Settings Title */ "Time Format" = "Time Format"; @@ -7600,13 +7657,16 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* No comment provided by engineer. */ "Transform block…" = "Transform block…"; -/* Accessibility label for trash buttons in nav bars +/* Accessibility label for trash button to delete items from the user's media library + Accessibility label for trash buttons in nav bars Button title for Trash comment state. - Trash button title Trashes a comment Trashes the comment */ "Trash" = "Trash"; +/* Accessibility hint for trash button to delete items from the user's media library */ +"Trash selected media" = "Trash selected media"; + /* Title of the trash page confirmation alert. */ "Trash this page?" = "Trash this page?"; @@ -7687,6 +7747,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Title for the setting to edit the twitter username used when sharing to twitter. */ "Twitter Username" = "Twitter Username"; +/* No comment provided by engineer. */ +"Two" = "Two"; + /* Type menu item in share extension. */ "Type" = "Type"; @@ -7783,7 +7846,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Unable to play video" = "Unable to play video"; /* No comment provided by engineer. */ -"Unable to read the WordPress site at that URL. Tap 'Need Help?' to view the FAQ." = "Unable to read the WordPress site at that URL. Tap 'Need Help?' to view the FAQ."; +"Unable to read the WordPress site at that URL. Tap 'Need more help?' to view the FAQ." = "Unable to read the WordPress site at that URL. Tap 'Need more help?' to view the FAQ."; /* Title for the Jetpack Restore Failed message. */ "Unable to restore your site" = "Unable to restore your site"; @@ -7866,6 +7929,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Underline" = "Underline"; /* Button in the notification presented in Reader when a post removed from saved for later + Button title. Reverts a comment moderation action. Button title. Reverts the previous notification operation Revert an operation The title of an 'undo' button. Tapping the button moves a trashed page out of the trash folder. @@ -8524,9 +8588,13 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Blog Writing Settings: Weeks starts on */ "Week starts on" = "Week starts on"; -/* Setting: indicates if the site reports its Weekly Roundup */ +/* Setting: indicates if the site reports its Weekly Roundup + Title of Weekly Roundup push notification */ "Weekly Roundup" = "Weekly Roundup"; +/* Title of Weekly Roundup push notification. %@ is a placeholder and will be replaced with the title of one of the user's websites. */ +"Weekly Roundup: %@" = "Weekly Roundup: %@"; + /* Title of Weeks stats filter. */ "Weeks" = "Weeks"; @@ -8830,12 +8898,12 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* A text for subtitle label on Login epilogue screen */ "You can switch sites at any time." = "You can switch sites at any time."; +/* Prompt shown on the Blogging Reminders Settings screen. */ +"You can update this any time" = "You can update this any time"; + /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "You can update this any time via My Site > Site Settings"; -/* Prompt shown on the Blogging Reminders Settings screen. */ -"You can update this anytime" = "You can update this anytime"; - /* No comment provided by engineer. */ "You cannot use that email address to signup. We are having problems with them blocking some of our email. Please use another email provider." = "You cannot use that email address to signup. We are having problems with them blocking some of our email. Please use another email provider."; @@ -9059,6 +9127,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* The default Jetpack view message */ "Your website credentials will not be stored and are used only for the purpose of installing Jetpack." = "Your website credentials will not be stored and are used only for the purpose of installing Jetpack."; +/* Prompt displayed as part of the stats Weekly Roundup push notification. */ +"Your weekly roundup is ready, tap here to see the details!" = "Your weekly roundup is ready, tap here to see the details!"; + /* Describes the expected behavior when the user disables in-app notifications in Reader Comments. */ "You’re following this conversation. You will receive an email and a notification whenever a new comment is made." = "You’re following this conversation. You will receive an email and a notification whenever a new comment is made."; diff --git a/WordPress/Resources/en-CA.lproj/Localizable.strings b/WordPress/Resources/en-CA.lproj/Localizable.strings index ba1596cf77cd..5d6670f1ef82 100644 --- a/WordPress/Resources/en-CA.lproj/Localizable.strings +++ b/WordPress/Resources/en-CA.lproj/Localizable.strings @@ -468,7 +468,8 @@ translators: Block name. %s: The localized block name */ /* Label for the Activity Type filter button when there are more than 1 activity type selected */ "Activity Type (%1$d)" = "Activity Type (%1$d)"; -/* Remove asset from media picker list */ +/* Accessibility label for add button to add items to the user's media library + Remove asset from media picker list */ "Add" = "Add"; /* Action for Media Picker to indicate selection of media. The argument in the string represents the number of elements (as numeric digits) selected */ @@ -564,6 +565,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Add menu item to children" = "Add menu item to children"; +/* Accessibility hint for add button to add items to the user's media library */ +"Add new media" = "Add new media"; + /* Screen reader text for Menus button that adds a new menu to a site. */ "Add new menu" = "Add new menu"; @@ -704,6 +708,12 @@ translators: Block name. %s: The localized block name */ /* Title of a row displayed on the debug screen used to indicate whether crash logs should be forced to send, even if they otherwise wouldn't */ "Always Send Crash Logs" = "Always Send Crash Logs"; +/* A failure reason for when an error HTTP status code was returned from the site, with the specific error code. */ +"An HTTP error code %i was returned." = "An HTTP error code %i was returned."; + +/* A failure reason for when an error HTTP status code was returned from the site. */ +"An HTTP error code was returned." = "An HTTP error code was returned."; + /* Error message when loading failed because there's no connection */ "An active internet connection is required" = "An active internet connection is required"; @@ -756,6 +766,9 @@ translators: Block name. %s: The localized block name */ /* Text displayed when a stat section failed to load. */ "An error occurred." = "An error occurred."; +/* A failure reason for when the error that occured wasn't able to be determined. */ +"An unknown error occurred." = "An unknown error occurred."; + /* Error message shown when a media upload fails for unknown reason and the user should try again. */ "An unknown error occurred. Please try again." = "An unknown error occurred. Please try again."; @@ -817,18 +830,9 @@ translators: Block name. %s: The localized block name */ /* Message prompting the user to confirm that they want to disconnect Jetpack from the site. */ "Are you sure you want to disconnect Jetpack from the site?" = "Are you sure you want to disconnect Jetpack from the site?"; -/* Message asking for confirmation before marking a comment as spam */ -"Are you sure you want to mark this comment as Spam?" = "Are you sure you want to mark this comment as Spam?"; - -/* Message asking for confirmation before marking a comment as trash */ -"Are you sure you want to mark this comment as Trash?" = "Are you sure you want to mark this comment as Trash?"; - /* Message prompting the user to confirm that they want to permanently delete a group of media items. */ "Are you sure you want to permanently delete these items?" = "Are you sure you want to permanently delete these items?"; -/* Message asking for confirmation on comment deletion */ -"Are you sure you want to permanently delete this comment?" = "Are you sure you want to permanently delete this comment?"; - /* Message prompting the user to confirm that they want to permanently delete a media item. Should match Calypso. */ "Are you sure you want to permanently delete this item?" = "Are you sure you want to permanently delete this item?"; @@ -1292,6 +1296,9 @@ translators: Block name. %s: The localized block name */ Main title */ "Change Password" = "Change Password"; +/* Title of button that takes user to the system Settings section for the app */ +"Change Settings" = "Change Settings"; + /* Title of an alert prompting the user that they are about to change the blog they are posting to. */ "Change Site" = "Change Site"; @@ -1587,6 +1594,9 @@ translators: Block name. %s: The localized block name */ My First Post */ "Comment on" = "Comment on"; +/* Message displayed when approving a comment succeeds. */ +"Comment set to approved." = "Comment set to approved."; + /* Message displayed when pending a comment succeeds. */ "Comment set to pending." = "Comment set to pending."; @@ -1677,8 +1687,7 @@ translators: Block name. %s: The localized block name */ /* Section title for the configure table section in the blog details screen */ "Configure" = "Configure"; -/* Confirm - Verb. Title for Jetpack Restore confirm button. */ +/* Verb. Title for Jetpack Restore confirm button. */ "Confirm" = "Confirm"; /* Close Account alert title */ @@ -2117,7 +2126,8 @@ translators: Block name. %s: The localized block name */ /* Title for the app appearance setting for dark mode */ "Dark" = "Dark"; -/* Action title. Noun. Opens the user's WordPress.com dashboard in an external browser. */ +/* Action title. Noun. Opens the user's WordPress.com dashboard in an external browser. + Title for dashboard view on the My Site screen */ "Dashboard" = "Dashboard"; /* Title for a threat that includes the number of database rows affected */ @@ -2174,7 +2184,6 @@ translators: Block name. %s: The localized block name */ "Defaults for New Posts" = "Defaults for New Posts"; /* Delete - Delete button title Delete button title for the warning shown to the user when he refuses to re-login when the authToken is missing. Title for button that permanently deletes a media item (photo / video) Title for button that permanently deletes one or more media items (photos / videos) @@ -2533,7 +2542,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Each block has its own settings. To find them, tap on a block. Its settings will appear on the toolbar at the bottom of the screen." = "Each block has its own settings. To find them, tap on a block. Its settings will appear on the toolbar at the bottom of the screen."; -/* Edit the post. +/* Accessibility label for edit button to enable multi selection mode in the user's media library + Edit the post. Editing GIF alert default action button. Edits a Comment Edits the comment @@ -2740,6 +2750,9 @@ translators: Block name. %s: The localized block name */ /* Secondary message shown when there are no domains that match the user entered text. */ "Enter different words above and we'll look for an address that matches it." = "Enter different words above and we'll look for an address that matches it."; +/* Accessibility hint for edit button to enable multi selection mode in the user's media library */ +"Enter edit mode to enable multi select to delete" = "Enter edit mode to enable multi select to delete"; + /* (placeholder) Help enter WordPress password Placeholder of a field to type a password to protect the post. */ "Enter password" = "Enter password"; @@ -2790,9 +2803,6 @@ translators: Block name. %s: The localized block name */ /* There was an error activating a plugin, placeholder is the plugin name */ "Error activating %@." = "Error activating %@."; -/* Message shown when approving a Comment fails. */ -"Error approving comment" = "Error approving comment"; - /* Message displayed when approving a comment fails. */ "Error approving comment." = "Error approving comment."; @@ -2802,9 +2812,6 @@ translators: Block name. %s: The localized block name */ /* There was an error deactivating a plugin, placeholder is the plugin name */ "Error deactivating %@." = "Error deactivating %@."; -/* Message shown when deleting a Comment fails. */ -"Error deleting comment" = "Error deleting comment"; - /* Message displayed when deleting a comment fails. */ "Error deleting comment." = "Error deleting comment."; @@ -2832,9 +2839,6 @@ translators: Block name. %s: The localized block name */ /* Messaged displayed when fetching plugins failed. */ "Error loading plugins" = "Error loading plugins"; -/* Message shown when marking a Comment as spam fails. */ -"Error marking comment as spam" = "Error marking comment as spam"; - /* Message displayed when spamming a comment fails. */ "Error marking comment as spam." = "Error marking comment as spam."; @@ -2874,12 +2878,12 @@ translators: Block name. %s: The localized block name */ /* Generic message shown when there was an error trying to re-send email verification. */ "Error sending verification email. Check your connection and try again." = "Error sending verification email. Check your connection and try again."; +/* Message displayed when approving a comment fails. */ +"Error setting comment to approved." = "Error setting comment to approved."; + /* Message displayed when pending a comment fails. */ "Error setting comment to pending." = "Error setting comment to pending."; -/* Message shown when unapproving a Comment fails. */ -"Error unapproving comment" = "Error unapproving comment"; - /* There was an error updating a plugin, placeholder is the plugin name */ "Error updating %@." = "Error updating %@."; @@ -3199,6 +3203,9 @@ translators: Block name. %s: The localized block name */ /* Next web page */ "Forward" = "Forward"; +/* No comment provided by engineer. */ +"Four" = "Four"; + /* Browse free themes selection title */ "Free" = "Free"; @@ -3235,6 +3242,9 @@ translators: Block name. %s: The localized block name */ /* translators: accessibility text. %s: gallery caption. */ "Gallery caption. %s" = "Gallery caption. %s"; +/* No comment provided by engineer. */ +"Gallery style" = "Gallery style"; + /* An example tag used in the login prologue screens. */ "Gardening" = "Gardening"; @@ -3853,6 +3863,9 @@ translators: Block name. %s: The localized block name */ User's Last Name */ "Last Name" = "Last Name"; +/* Content of a weekly roundup push notification containing stats about the user's site. The % markers are placeholders and will be replaced by the appropriate number of views, comments, and likes. The numbers indicate the order, so they can be rearranged if necessary – 1 is views, 2 is comments, 3 is likes. */ +"Last week you had %1$d views, %2$d comments and %3$d likes." = "Last week you had %1$d views, %2$d comments and %3$d likes."; + /* Insights latest post summary header */ "Latest Post Summary" = "Latest Post Summary"; @@ -4442,6 +4455,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Navigates to customize the gradient" = "Navigates to customise the gradient"; +/* No comment provided by engineer. */ +"Navigates to layout selection screen" = "Navigates to layout selection screen"; + /* translators: %s: Select control button label e.g. Small translators: %s: Select control button label e.g. \"Button width\" */ "Navigates to select %s" = "Navigates to select %s"; @@ -4513,6 +4529,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Table view title for the quick start section. */ "Next Steps" = "Next Steps"; +/* Accessibility label for the button which shows the previous month in the monthly calendar view */ +"Next month" = "Next month"; + /* Accessibility label for the next notification button */ "Next notification" = "Next notification"; @@ -4611,6 +4630,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ Text shown when there is no data to display in the stats list view. */ "No data yet" = "No data yet"; +/* Accessibility label for no currently selected range. */ +"No date range selected" = "No date range selected"; + /* Title for the view when there aren't any fixed threats to display */ "No fixed threats" = "No fixed threats"; @@ -4886,12 +4908,18 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* A subtitle with more detailed info for the user when no WordPress.com sites could be found. */ "Once you create a WordPress.com site, you can reblog content that you like to your own site." = "Once you create a WordPress.com site, you can reblog content that you like to your own site."; +/* No comment provided by engineer. */ +"One" = "One"; + /* Subtitle displayed when the user has removed all Insights from display. */ "Only see the most relevant stats. Add insights to fit your needs." = "Only see the most relevant stats. Add insights to fit your needs."; /* No comment provided by engineer. */ "Only show excerpt" = "Only show excerpt"; +/* Message telling the user that they've only enabled limited photo library permissions for the app. */ +"Only the selected photos you've given access to are available." = "Only the selected photos you've given access to are available."; + /* An informal exclaimation that means `something went wrong`. Title for the view when there's an error loading Activity Log Title for the view when there's an error loading scan status @@ -5478,6 +5506,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Description of a Quick Start Tour */ "Preview your new site to see what your visitors will see." = "Preview your new site to see what your visitors will see."; +/* Accessibility label for the button which shows the previous month in the monthly calendar view */ +"Previous month" = "Previous month"; + /* Accessibility label for the previous notification button */ "Previous notification" = "Previous notification"; @@ -5775,7 +5806,7 @@ translators: %s: Select control button label e.g. \"Button width\" */ "Remove Site Icon" = "Remove Site Icon"; /* No comment provided by engineer. */ -"Remove as Featured Image " = "Remove as featured image "; +"Remove as Featured Image" = "Remove as Featured Image"; /* No comment provided by engineer. */ "Remove block" = "Remove block"; @@ -6235,6 +6266,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Register Domain - Domain contact information field placeholder for Country */ "Select Country" = "Select Country"; +/* Title of button that allows the user to select more photos to access within the app */ +"Select More" = "Select More"; + /* Blog Picker's Title */ "Select Site" = "Select Site"; @@ -6298,6 +6332,12 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Error message when user tries a no longer existent video media object. */ "Selected media is unavailable." = "Selected media is unavailable."; +/* Accessibility label for summary of currently single date. %1$@ is the date */ +"Selected range: %1$@ only" = "Selected range: %1$@ only"; + +/* Accessibility label for summary of currently selected range. %1$@ is the start date, %2$@ is the end date. */ +"Selected range: %1$@ to %2$@" = "Selected range: %1$@ to %2$@"; + /* translators: %s: Select font size option value e.g: \"Selected: Large\". translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Selected: %s" = "Selected: %s"; @@ -6358,7 +6398,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Set Parent" = "Set Parent"; /* No comment provided by engineer. */ -"Set as Featured Image " = "Set as featured image"; +"Set as Featured Image" = "Set as Featured Image"; /* Label for a button that sets the selected page as the site's Homepage */ "Set as Homepage" = "Set as Homepage"; @@ -6576,6 +6616,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Title for the Language Picker View */ "Site Language" = "Site Language"; +/* Title for the site menu view on the My Site screen */ +"Site Menu" = "Site Menu"; + /* Describes a site redirect domain */ "Site Redirect" = "Site Redirect"; @@ -6763,7 +6806,6 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Button title for Spam comment state. Marks comment as spam. - Spam Title of spam Comments filter. */ "Spam" = "Spam"; @@ -7106,7 +7148,8 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Description shown when a user logs in with Google but no matching WordPress.com account is found */ "The Google account \"%@\" doesn't match any account on WordPress.com" = "The Google account \"%@\" doesn't match any account on WordPress.com"; -/* Message of error prompt shown when a user tries to perform an action without an internet connection. */ +/* Error message shown when a media upload fails because the user isn't connected to the Internet. + Message of error prompt shown when a user tries to perform an action without an internet connection. */ "The Internet connection appears to be offline." = "The Internet connection appears to be offline."; /* Message informing the user that the site title can only be changed by an administrator user. */ @@ -7145,8 +7188,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Message shown when an image failed to load while trying to add it to the Media library. */ "The image could not be added to the Media Library." = "The image could not be added to the Media Library."; -/* Error message shown when a media upload fails because the user isn't connected to the internet. - Message of error prompt shown when a user tries to perform an action without an internet connection. */ +/* Message of error prompt shown when a user tries to perform an action without an internet connection. */ "The internet connection appears to be offline." = "The internet connection appears to be offline."; /* Message shown when an asset failed to load while trying to add it to the Media library. */ @@ -7182,6 +7224,12 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Description shown in alert to confirm skipping all quick start items */ "The quick start tour will guide you through building a basic site. Are you sure you want to skip? " = "The quick start tour will guide you through building a basic site. Are you sure you want to skip? "; +/* A failure reason for when the request couldn't be serialized. */ +"The serialization of the request failed." = "The serialization of the request failed."; + +/* A failure reason for when the response couldn't be serialized. */ +"The serialization of the response failed." = "The serialization of the response failed."; + /* No comment provided by engineer. */ "The server returned an empty response. This usually means you need to increase the memory limit for your site." = "The server returned an empty response. This usually means you need to increase the memory limit for your site."; @@ -7282,6 +7330,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Error message informing the user that there was a problem blocking posts from a site from their reader. */ "There was a problem blocking posts from the specified site." = "There was a problem blocking posts from the specified site."; +/* A general error message shown to the user when there was an API communication failure. */ +"There was a problem communicating with the site." = "There was a problem communicating with the site."; + /* Message for the warning shown to the user when the app realizes there should be an auth token but there isn't one. */ "There was a problem connecting to WordPress.com. Please log in again." = "There was a problem connecting to WordPress.com. Please login again."; @@ -7450,12 +7501,18 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Message displayed when a threat is ignored successfully. */ "Threat ignored." = "Threat ignored."; +/* No comment provided by engineer. */ +"Three" = "Three"; + /* Thumbnail image size. Should be the same as in core WP. */ "Thumbnail" = "Thumbnail"; /* Message shown if a thumbnail preview of a media item unavailable. */ "Thumbnail unavailable." = "Thumbnail unavailable."; +/* No comment provided by engineer. */ +"Tiled gallery settings" = "Tiled gallery settings"; + /* Blog Writing Settings: Time Format Writing Time Format Settings Title */ "Time Format" = "Time Format"; @@ -7600,13 +7657,16 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* No comment provided by engineer. */ "Transform block…" = "Transform block…"; -/* Accessibility label for trash buttons in nav bars +/* Accessibility label for trash button to delete items from the user's media library + Accessibility label for trash buttons in nav bars Button title for Trash comment state. - Trash button title Trashes a comment Trashes the comment */ "Trash" = "Trash"; +/* Accessibility hint for trash button to delete items from the user's media library */ +"Trash selected media" = "Trash selected media"; + /* Title of the trash page confirmation alert. */ "Trash this page?" = "Trash this page?"; @@ -7687,6 +7747,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Title for the setting to edit the twitter username used when sharing to twitter. */ "Twitter Username" = "Twitter Username"; +/* No comment provided by engineer. */ +"Two" = "Two"; + /* Type menu item in share extension. */ "Type" = "Type"; @@ -7783,7 +7846,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Unable to play video" = "Unable to play video"; /* No comment provided by engineer. */ -"Unable to read the WordPress site at that URL. Tap 'Need Help?' to view the FAQ." = "Unable to read the WordPress site at that URL. Tap 'Need Help?' to view the FAQ."; +"Unable to read the WordPress site at that URL. Tap 'Need more help?' to view the FAQ." = "Unable to read the WordPress site at that URL. Tap 'Need more help?' to view the FAQ."; /* Title for the Jetpack Restore Failed message. */ "Unable to restore your site" = "Unable to restore your site"; @@ -7866,6 +7929,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Underline" = "Underline"; /* Button in the notification presented in Reader when a post removed from saved for later + Button title. Reverts a comment moderation action. Button title. Reverts the previous notification operation Revert an operation The title of an 'undo' button. Tapping the button moves a trashed page out of the trash folder. @@ -8524,9 +8588,13 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Blog Writing Settings: Weeks starts on */ "Week starts on" = "Week starts on"; -/* Setting: indicates if the site reports its Weekly Roundup */ +/* Setting: indicates if the site reports its Weekly Roundup + Title of Weekly Roundup push notification */ "Weekly Roundup" = "Weekly Roundup"; +/* Title of Weekly Roundup push notification. %@ is a placeholder and will be replaced with the title of one of the user's websites. */ +"Weekly Roundup: %@" = "Weekly Roundup: %@"; + /* Title of Weeks stats filter. */ "Weeks" = "Weeks"; @@ -8830,12 +8898,12 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* A text for subtitle label on Login epilogue screen */ "You can switch sites at any time." = "You can switch sites at any time."; +/* Prompt shown on the Blogging Reminders Settings screen. */ +"You can update this any time" = "You can update this any time"; + /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "You can update this any time via My Site > Site Settings"; -/* Prompt shown on the Blogging Reminders Settings screen. */ -"You can update this anytime" = "You can update this anytime"; - /* No comment provided by engineer. */ "You cannot use that email address to signup. We are having problems with them blocking some of our email. Please use another email provider." = "You cannot use that email address to signup. We are having problems with them blocking some of our email. Please use another email provider."; @@ -9059,6 +9127,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* The default Jetpack view message */ "Your website credentials will not be stored and are used only for the purpose of installing Jetpack." = "Your website credentials will not be stored and are used only for the purpose of installing Jetpack."; +/* Prompt displayed as part of the stats Weekly Roundup push notification. */ +"Your weekly roundup is ready, tap here to see the details!" = "Your weekly roundup is ready, tap here to see the details!"; + /* Describes the expected behavior when the user disables in-app notifications in Reader Comments. */ "You’re following this conversation. You will receive an email and a notification whenever a new comment is made." = "You’re following this conversation. You will receive an email and a notification whenever a new comment is made."; diff --git a/WordPress/Resources/en-GB.lproj/Localizable.strings b/WordPress/Resources/en-GB.lproj/Localizable.strings index 6dd0b779eb34..faa44dc641a3 100644 --- a/WordPress/Resources/en-GB.lproj/Localizable.strings +++ b/WordPress/Resources/en-GB.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2022-01-10 13:04:42+0000 */ +/* Translation-Revision-Date: 2022-01-25 10:38:15+0000 */ /* Plural-Forms: nplurals=2; plural=n != 1; */ /* Generator: GlotPress/3.0.0-alpha.2 */ /* Language: en_GB */ @@ -468,7 +468,8 @@ translators: Block name. %s: The localized block name */ /* Label for the Activity Type filter button when there are more than 1 activity type selected */ "Activity Type (%1$d)" = "Activity Type (%1$d)"; -/* Remove asset from media picker list */ +/* Accessibility label for add button to add items to the user's media library + Remove asset from media picker list */ "Add" = "Add"; /* Action for Media Picker to indicate selection of media. The argument in the string represents the number of elements (as numeric digits) selected */ @@ -564,6 +565,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Add menu item to children" = "Add menu item to children"; +/* Accessibility hint for add button to add items to the user's media library */ +"Add new media" = "Add new media"; + /* Screen reader text for Menus button that adds a new menu to a site. */ "Add new menu" = "Add new menu"; @@ -704,6 +708,12 @@ translators: Block name. %s: The localized block name */ /* Title of a row displayed on the debug screen used to indicate whether crash logs should be forced to send, even if they otherwise wouldn't */ "Always Send Crash Logs" = "Always Send Crash Logs"; +/* A failure reason for when an error HTTP status code was returned from the site, with the specific error code. */ +"An HTTP error code %i was returned." = "An HTTP error code %i was returned."; + +/* A failure reason for when an error HTTP status code was returned from the site. */ +"An HTTP error code was returned." = "An HTTP error code was returned."; + /* Error message when loading failed because there's no connection */ "An active internet connection is required" = "An active internet connection is required"; @@ -756,6 +766,9 @@ translators: Block name. %s: The localized block name */ /* Text displayed when a stat section failed to load. */ "An error occurred." = "An error occurred."; +/* A failure reason for when the error that occured wasn't able to be determined. */ +"An unknown error occurred." = "An unknown error occurred."; + /* Error message shown when a media upload fails for unknown reason and the user should try again. */ "An unknown error occurred. Please try again." = "An unknown error occurred. Please try again."; @@ -817,18 +830,9 @@ translators: Block name. %s: The localized block name */ /* Message prompting the user to confirm that they want to disconnect Jetpack from the site. */ "Are you sure you want to disconnect Jetpack from the site?" = "Are you sure you want to disconnect Jetpack from the site?"; -/* Message asking for confirmation before marking a comment as spam */ -"Are you sure you want to mark this comment as Spam?" = "Are you sure you want to mark this comment as Spam?"; - -/* Message asking for confirmation before marking a comment as trash */ -"Are you sure you want to mark this comment as Trash?" = "Are you sure you want to mark this comment as bin?"; - /* Message prompting the user to confirm that they want to permanently delete a group of media items. */ "Are you sure you want to permanently delete these items?" = "Are you sure you want to permanently delete these items?"; -/* Message asking for confirmation on comment deletion */ -"Are you sure you want to permanently delete this comment?" = "Are you sure you want to permanently delete this comment?"; - /* Message prompting the user to confirm that they want to permanently delete a media item. Should match Calypso. */ "Are you sure you want to permanently delete this item?" = "Are you sure you want to permanently delete this item?"; @@ -1292,6 +1296,9 @@ translators: Block name. %s: The localized block name */ Main title */ "Change Password" = "Change Password"; +/* Title of button that takes user to the system Settings section for the app */ +"Change Settings" = "Change Settings"; + /* Title of an alert prompting the user that they are about to change the blog they are posting to. */ "Change Site" = "Change Site"; @@ -1587,6 +1594,9 @@ translators: Block name. %s: The localized block name */ My First Post */ "Comment on" = "Comment on"; +/* Message displayed when approving a comment succeeds. */ +"Comment set to approved." = "Comment set to approved."; + /* Message displayed when pending a comment succeeds. */ "Comment set to pending." = "Comment set to pending."; @@ -1677,8 +1687,7 @@ translators: Block name. %s: The localized block name */ /* Section title for the configure table section in the blog details screen */ "Configure" = "Configure"; -/* Confirm - Verb. Title for Jetpack Restore confirm button. */ +/* Verb. Title for Jetpack Restore confirm button. */ "Confirm" = "Confirm"; /* Close Account alert title */ @@ -2117,7 +2126,8 @@ translators: Block name. %s: The localized block name */ /* Title for the app appearance setting for dark mode */ "Dark" = "Dark"; -/* Action title. Noun. Opens the user's WordPress.com dashboard in an external browser. */ +/* Action title. Noun. Opens the user's WordPress.com dashboard in an external browser. + Title for dashboard view on the My Site screen */ "Dashboard" = "Dashboard"; /* Title for a threat that includes the number of database rows affected */ @@ -2174,7 +2184,6 @@ translators: Block name. %s: The localized block name */ "Defaults for New Posts" = "Defaults for New Posts"; /* Delete - Delete button title Delete button title for the warning shown to the user when he refuses to re-login when the authToken is missing. Title for button that permanently deletes a media item (photo / video) Title for button that permanently deletes one or more media items (photos / videos) @@ -2533,7 +2542,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Each block has its own settings. To find them, tap on a block. Its settings will appear on the toolbar at the bottom of the screen." = "Each block has its own settings. To find them, tap on a block. Its settings will appear on the toolbar at the bottom of the screen."; -/* Edit the post. +/* Accessibility label for edit button to enable multi selection mode in the user's media library + Edit the post. Editing GIF alert default action button. Edits a Comment Edits the comment @@ -2740,6 +2750,9 @@ translators: Block name. %s: The localized block name */ /* Secondary message shown when there are no domains that match the user entered text. */ "Enter different words above and we'll look for an address that matches it." = "Enter different words above and we'll look for an address that matches it."; +/* Accessibility hint for edit button to enable multi selection mode in the user's media library */ +"Enter edit mode to enable multi select to delete" = "Enter edit mode to enable multi select to delete"; + /* (placeholder) Help enter WordPress password Placeholder of a field to type a password to protect the post. */ "Enter password" = "Enter password"; @@ -2790,9 +2803,6 @@ translators: Block name. %s: The localized block name */ /* There was an error activating a plugin, placeholder is the plugin name */ "Error activating %@." = "Error activating %@."; -/* Message shown when approving a Comment fails. */ -"Error approving comment" = "Error approving comment"; - /* Message displayed when approving a comment fails. */ "Error approving comment." = "Error approving comment."; @@ -2802,9 +2812,6 @@ translators: Block name. %s: The localized block name */ /* There was an error deactivating a plugin, placeholder is the plugin name */ "Error deactivating %@." = "Error deactivating %@."; -/* Message shown when deleting a Comment fails. */ -"Error deleting comment" = "Error deleting comment"; - /* Message displayed when deleting a comment fails. */ "Error deleting comment." = "Error deleting comment."; @@ -2832,9 +2839,6 @@ translators: Block name. %s: The localized block name */ /* Messaged displayed when fetching plugins failed. */ "Error loading plugins" = "Error loading plugins"; -/* Message shown when marking a Comment as spam fails. */ -"Error marking comment as spam" = "Error marking comment as spam"; - /* Message displayed when spamming a comment fails. */ "Error marking comment as spam." = "Error marking comment as spam."; @@ -2874,12 +2878,12 @@ translators: Block name. %s: The localized block name */ /* Generic message shown when there was an error trying to re-send email verification. */ "Error sending verification email. Check your connection and try again." = "Error sending verification email. Check your connection and try again."; +/* Message displayed when approving a comment fails. */ +"Error setting comment to approved." = "Error setting comment to approved."; + /* Message displayed when pending a comment fails. */ "Error setting comment to pending." = "Error setting comment to pending."; -/* Message shown when unapproving a Comment fails. */ -"Error unapproving comment" = "Error unapproving comment"; - /* There was an error updating a plugin, placeholder is the plugin name */ "Error updating %@." = "Error updating %@."; @@ -3199,6 +3203,9 @@ translators: Block name. %s: The localized block name */ /* Next web page */ "Forward" = "Forward"; +/* No comment provided by engineer. */ +"Four" = "Four"; + /* Browse free themes selection title */ "Free" = "Free"; @@ -3235,6 +3242,9 @@ translators: Block name. %s: The localized block name */ /* translators: accessibility text. %s: gallery caption. */ "Gallery caption. %s" = "Gallery caption. %s"; +/* No comment provided by engineer. */ +"Gallery style" = "Gallery style"; + /* An example tag used in the login prologue screens. */ "Gardening" = "Gardening"; @@ -3853,6 +3863,9 @@ translators: Block name. %s: The localized block name */ User's Last Name */ "Last Name" = "Last Name"; +/* Content of a weekly roundup push notification containing stats about the user's site. The % markers are placeholders and will be replaced by the appropriate number of views, comments, and likes. The numbers indicate the order, so they can be rearranged if necessary – 1 is views, 2 is comments, 3 is likes. */ +"Last week you had %1$d views, %2$d comments and %3$d likes." = "Last week you had %1$d views, %2$d comments, and %3$d likes."; + /* Insights latest post summary header */ "Latest Post Summary" = "Latest Post Summary"; @@ -4442,6 +4455,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Navigates to customize the gradient" = "Navigates to customise the gradient"; +/* No comment provided by engineer. */ +"Navigates to layout selection screen" = "Navigates to layout selection screen"; + /* translators: %s: Select control button label e.g. Small translators: %s: Select control button label e.g. \"Button width\" */ "Navigates to select %s" = "Navigates to select %s"; @@ -4513,6 +4529,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Table view title for the quick start section. */ "Next Steps" = "Next Steps"; +/* Accessibility label for the button which shows the previous month in the monthly calendar view */ +"Next month" = "Next month"; + /* Accessibility label for the next notification button */ "Next notification" = "Next notification"; @@ -4611,6 +4630,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ Text shown when there is no data to display in the stats list view. */ "No data yet" = "No data yet"; +/* Accessibility label for no currently selected range. */ +"No date range selected" = "No date range selected"; + /* Title for the view when there aren't any fixed threats to display */ "No fixed threats" = "No fixed threats"; @@ -4886,12 +4908,18 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* A subtitle with more detailed info for the user when no WordPress.com sites could be found. */ "Once you create a WordPress.com site, you can reblog content that you like to your own site." = "Once you create a WordPress.com site, you can reblog content that you like to your own site."; +/* No comment provided by engineer. */ +"One" = "One"; + /* Subtitle displayed when the user has removed all Insights from display. */ "Only see the most relevant stats. Add insights to fit your needs." = "Only see the most relevant stats. Add insights to fit your needs."; /* No comment provided by engineer. */ "Only show excerpt" = "Only show excerpt"; +/* Message telling the user that they've only enabled limited photo library permissions for the app. */ +"Only the selected photos you've given access to are available." = "Only the selected photos to which you've given access are available."; + /* An informal exclaimation that means `something went wrong`. Title for the view when there's an error loading Activity Log Title for the view when there's an error loading scan status @@ -5478,6 +5506,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Description of a Quick Start Tour */ "Preview your new site to see what your visitors will see." = "Preview your new site to see what your visitors will see."; +/* Accessibility label for the button which shows the previous month in the monthly calendar view */ +"Previous month" = "Previous month"; + /* Accessibility label for the previous notification button */ "Previous notification" = "Previous notification"; @@ -5775,7 +5806,7 @@ translators: %s: Select control button label e.g. \"Button width\" */ "Remove Site Icon" = "Remove Site Icon"; /* No comment provided by engineer. */ -"Remove as Featured Image " = "Remove as featured image "; +"Remove as Featured Image" = "Remove as Featured Image"; /* No comment provided by engineer. */ "Remove block" = "Remove block"; @@ -6235,6 +6266,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Register Domain - Domain contact information field placeholder for Country */ "Select Country" = "Select Country"; +/* Title of button that allows the user to select more photos to access within the app */ +"Select More" = "Select More"; + /* Blog Picker's Title */ "Select Site" = "Select Site"; @@ -6298,6 +6332,12 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Error message when user tries a no longer existent video media object. */ "Selected media is unavailable." = "Selected media is unavailable."; +/* Accessibility label for summary of currently single date. %1$@ is the date */ +"Selected range: %1$@ only" = "Selected range: %1$@ only"; + +/* Accessibility label for summary of currently selected range. %1$@ is the start date, %2$@ is the end date. */ +"Selected range: %1$@ to %2$@" = "Selected range: %1$@ to %2$@"; + /* translators: %s: Select font size option value e.g: \"Selected: Large\". translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Selected: %s" = "Selected: %s"; @@ -6358,7 +6398,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Set Parent" = "Set Parent"; /* No comment provided by engineer. */ -"Set as Featured Image " = "Set as featured image"; +"Set as Featured Image" = "Set as Featured Image"; /* Label for a button that sets the selected page as the site's Homepage */ "Set as Homepage" = "Set as Homepage"; @@ -6576,6 +6616,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Title for the Language Picker View */ "Site Language" = "Site Language"; +/* Title for the site menu view on the My Site screen */ +"Site Menu" = "Site Menu"; + /* Describes a site redirect domain */ "Site Redirect" = "Site Redirect"; @@ -6763,7 +6806,6 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Button title for Spam comment state. Marks comment as spam. - Spam Title of spam Comments filter. */ "Spam" = "Spam"; @@ -7106,7 +7148,8 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Description shown when a user logs in with Google but no matching WordPress.com account is found */ "The Google account \"%@\" doesn't match any account on WordPress.com" = "The Google account \"%@\" doesn't match any account on WordPress.com"; -/* Message of error prompt shown when a user tries to perform an action without an internet connection. */ +/* Error message shown when a media upload fails because the user isn't connected to the Internet. + Message of error prompt shown when a user tries to perform an action without an internet connection. */ "The Internet connection appears to be offline." = "The Internet connection appears to be offline."; /* Message informing the user that the site title can only be changed by an administrator user. */ @@ -7145,8 +7188,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Message shown when an image failed to load while trying to add it to the Media library. */ "The image could not be added to the Media Library." = "The image could not be added to the Media Library."; -/* Error message shown when a media upload fails because the user isn't connected to the internet. - Message of error prompt shown when a user tries to perform an action without an internet connection. */ +/* Message of error prompt shown when a user tries to perform an action without an internet connection. */ "The internet connection appears to be offline." = "The internet connection appears to be offline."; /* Message shown when an asset failed to load while trying to add it to the Media library. */ @@ -7182,6 +7224,12 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Description shown in alert to confirm skipping all quick start items */ "The quick start tour will guide you through building a basic site. Are you sure you want to skip? " = "The quick start tour will guide you through building a basic site. Are you sure you want to skip? "; +/* A failure reason for when the request couldn't be serialized. */ +"The serialization of the request failed." = "The serialisation of the request failed."; + +/* A failure reason for when the response couldn't be serialized. */ +"The serialization of the response failed." = "The serialisation of the response failed."; + /* No comment provided by engineer. */ "The server returned an empty response. This usually means you need to increase the memory limit for your site." = "The server returned an empty response. This usually means you need to increase the memory limit for your site."; @@ -7282,6 +7330,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Error message informing the user that there was a problem blocking posts from a site from their reader. */ "There was a problem blocking posts from the specified site." = "There was a problem blocking posts from the specified site."; +/* A general error message shown to the user when there was an API communication failure. */ +"There was a problem communicating with the site." = "There was a problem communicating with the site."; + /* Message for the warning shown to the user when the app realizes there should be an auth token but there isn't one. */ "There was a problem connecting to WordPress.com. Please log in again." = "There was a problem connecting to WordPress.com. Please log in again."; @@ -7450,12 +7501,18 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Message displayed when a threat is ignored successfully. */ "Threat ignored." = "Threat ignored."; +/* No comment provided by engineer. */ +"Three" = "Three"; + /* Thumbnail image size. Should be the same as in core WP. */ "Thumbnail" = "Thumbnail"; /* Message shown if a thumbnail preview of a media item unavailable. */ "Thumbnail unavailable." = "Thumbnail unavailable."; +/* No comment provided by engineer. */ +"Tiled gallery settings" = "Tiled gallery settings"; + /* Blog Writing Settings: Time Format Writing Time Format Settings Title */ "Time Format" = "Time Format"; @@ -7600,13 +7657,16 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* No comment provided by engineer. */ "Transform block…" = "Transform block…"; -/* Accessibility label for trash buttons in nav bars +/* Accessibility label for trash button to delete items from the user's media library + Accessibility label for trash buttons in nav bars Button title for Trash comment state. - Trash button title Trashes a comment Trashes the comment */ "Trash" = "Bin"; +/* Accessibility hint for trash button to delete items from the user's media library */ +"Trash selected media" = "Bin selected media"; + /* Title of the trash page confirmation alert. */ "Trash this page?" = "Bin this page?"; @@ -7687,6 +7747,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Title for the setting to edit the twitter username used when sharing to twitter. */ "Twitter Username" = "Twitter Username"; +/* No comment provided by engineer. */ +"Two" = "Two"; + /* Type menu item in share extension. */ "Type" = "Type"; @@ -7783,7 +7846,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Unable to play video" = "Unable to play video"; /* No comment provided by engineer. */ -"Unable to read the WordPress site at that URL. Tap 'Need Help?' to view the FAQ." = "Unable to read the WordPress site at that URL. Tap 'Need Help?' to view the FAQ."; +"Unable to read the WordPress site at that URL. Tap 'Need more help?' to view the FAQ." = "Unable to read the WordPress site at that URL. Tap 'Need more help?' to view the FAQ."; /* Title for the Jetpack Restore Failed message. */ "Unable to restore your site" = "Unable to restore your site"; @@ -7866,6 +7929,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Underline" = "Underline"; /* Button in the notification presented in Reader when a post removed from saved for later + Button title. Reverts a comment moderation action. Button title. Reverts the previous notification operation Revert an operation The title of an 'undo' button. Tapping the button moves a trashed page out of the trash folder. @@ -8524,9 +8588,13 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Blog Writing Settings: Weeks starts on */ "Week starts on" = "Week starts on"; -/* Setting: indicates if the site reports its Weekly Roundup */ +/* Setting: indicates if the site reports its Weekly Roundup + Title of Weekly Roundup push notification */ "Weekly Roundup" = "Weekly Roundup"; +/* Title of Weekly Roundup push notification. %@ is a placeholder and will be replaced with the title of one of the user's websites. */ +"Weekly Roundup: %@" = "Weekly Roundup: %@"; + /* Title of Weeks stats filter. */ "Weeks" = "Weeks"; @@ -8830,12 +8898,12 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* A text for subtitle label on Login epilogue screen */ "You can switch sites at any time." = "You can switch sites at any time."; +/* Prompt shown on the Blogging Reminders Settings screen. */ +"You can update this any time" = "You can update this any time"; + /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "You can update this any time via My Site > Site Settings"; -/* Prompt shown on the Blogging Reminders Settings screen. */ -"You can update this anytime" = "You can update this anytime"; - /* No comment provided by engineer. */ "You cannot use that email address to signup. We are having problems with them blocking some of our email. Please use another email provider." = "You cannot use that email address to signup. We are having problems with them blocking some of our email. Please use another email provider."; @@ -9059,6 +9127,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* The default Jetpack view message */ "Your website credentials will not be stored and are used only for the purpose of installing Jetpack." = "Your website credentials will not be stored and are used only for the purpose of installing Jetpack."; +/* Prompt displayed as part of the stats Weekly Roundup push notification. */ +"Your weekly roundup is ready, tap here to see the details!" = "Your weekly roundup is ready, tap here to see the details!"; + /* Describes the expected behavior when the user disables in-app notifications in Reader Comments. */ "You’re following this conversation. You will receive an email and a notification whenever a new comment is made." = "You’re following this conversation. You will receive an email and a notification whenever a new comment is made."; diff --git a/WordPress/Resources/es.lproj/Localizable.strings b/WordPress/Resources/es.lproj/Localizable.strings index 667806e8761a..5d1b3bc45433 100644 --- a/WordPress/Resources/es.lproj/Localizable.strings +++ b/WordPress/Resources/es.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2022-01-10 13:08:50+0000 */ +/* Translation-Revision-Date: 2022-01-25 12:02:38+0000 */ /* Plural-Forms: nplurals=2; plural=n != 1; */ /* Generator: GlotPress/3.0.0-alpha.2 */ /* Language: es */ @@ -468,7 +468,8 @@ translators: Block name. %s: The localized block name */ /* Label for the Activity Type filter button when there are more than 1 activity type selected */ "Activity Type (%1$d)" = "Tipo de actividad (%1$d)"; -/* Remove asset from media picker list */ +/* Accessibility label for add button to add items to the user's media library + Remove asset from media picker list */ "Add" = "Añadir"; /* Action for Media Picker to indicate selection of media. The argument in the string represents the number of elements (as numeric digits) selected */ @@ -564,6 +565,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Add menu item to children" = "Añadir elemento del menú a los elementos secundarios"; +/* Accessibility hint for add button to add items to the user's media library */ +"Add new media" = "Añadir nuevo medio"; + /* Screen reader text for Menus button that adds a new menu to a site. */ "Add new menu" = "Añadir un nuevo menú"; @@ -704,6 +708,12 @@ translators: Block name. %s: The localized block name */ /* Title of a row displayed on the debug screen used to indicate whether crash logs should be forced to send, even if they otherwise wouldn't */ "Always Send Crash Logs" = "Enviar siempre los registros de fallos"; +/* A failure reason for when an error HTTP status code was returned from the site, with the specific error code. */ +"An HTTP error code %i was returned." = "Devolvió un código de error HTTP %i."; + +/* A failure reason for when an error HTTP status code was returned from the site. */ +"An HTTP error code was returned." = "Devolvió un código de error HTTP."; + /* Error message when loading failed because there's no connection */ "An active internet connection is required" = "Se requiere una conexión activa a Internet"; @@ -756,6 +766,9 @@ translators: Block name. %s: The localized block name */ /* Text displayed when a stat section failed to load. */ "An error occurred." = "Ha ocurrido un error."; +/* A failure reason for when the error that occured wasn't able to be determined. */ +"An unknown error occurred." = "Ha ocurrido un error desconocido."; + /* Error message shown when a media upload fails for unknown reason and the user should try again. */ "An unknown error occurred. Please try again." = "Ha ocurrido un error desconocido. Por favor inténtalo de nuevo."; @@ -817,18 +830,9 @@ translators: Block name. %s: The localized block name */ /* Message prompting the user to confirm that they want to disconnect Jetpack from the site. */ "Are you sure you want to disconnect Jetpack from the site?" = "¿Estás seguro de querer desconectar Jetpack del sitio?"; -/* Message asking for confirmation before marking a comment as spam */ -"Are you sure you want to mark this comment as Spam?" = "¿Estás seguro de que quieres marcar este comentario como spam?"; - -/* Message asking for confirmation before marking a comment as trash */ -"Are you sure you want to mark this comment as Trash?" = "¿Estás seguro de que quieres marcar este comentario como papelera?"; - /* Message prompting the user to confirm that they want to permanently delete a group of media items. */ "Are you sure you want to permanently delete these items?" = "¿Seguro que deseas borrar permanentemente estos elementos?"; -/* Message asking for confirmation on comment deletion */ -"Are you sure you want to permanently delete this comment?" = "¿Seguro que quieres borrar permanentemente este comentario?"; - /* Message prompting the user to confirm that they want to permanently delete a media item. Should match Calypso. */ "Are you sure you want to permanently delete this item?" = "¿Estás seguro de que quieres eliminar permanentemente este elemento?"; @@ -1292,6 +1296,9 @@ translators: Block name. %s: The localized block name */ Main title */ "Change Password" = "Cambiar contraseña"; +/* Title of button that takes user to the system Settings section for the app */ +"Change Settings" = "Cambiar ajustes"; + /* Title of an alert prompting the user that they are about to change the blog they are posting to. */ "Change Site" = "Cambiar sitio"; @@ -1587,6 +1594,9 @@ translators: Block name. %s: The localized block name */ My First Post */ "Comment on" = "Comentario en"; +/* Message displayed when approving a comment succeeds. */ +"Comment set to approved." = "Comentario establecido como aprobado."; + /* Message displayed when pending a comment succeeds. */ "Comment set to pending." = "Comentario establecido como pendiente."; @@ -1677,8 +1687,7 @@ translators: Block name. %s: The localized block name */ /* Section title for the configure table section in the blog details screen */ "Configure" = "Configurar"; -/* Confirm - Verb. Title for Jetpack Restore confirm button. */ +/* Verb. Title for Jetpack Restore confirm button. */ "Confirm" = "Confirmar"; /* Close Account alert title */ @@ -2117,7 +2126,8 @@ translators: Block name. %s: The localized block name */ /* Title for the app appearance setting for dark mode */ "Dark" = "Oscuro"; -/* Action title. Noun. Opens the user's WordPress.com dashboard in an external browser. */ +/* Action title. Noun. Opens the user's WordPress.com dashboard in an external browser. + Title for dashboard view on the My Site screen */ "Dashboard" = "Escritorio"; /* Title for a threat that includes the number of database rows affected */ @@ -2174,7 +2184,6 @@ translators: Block name. %s: The localized block name */ "Defaults for New Posts" = "Opciones predeterminadas para entradas nuevas"; /* Delete - Delete button title Delete button title for the warning shown to the user when he refuses to re-login when the authToken is missing. Title for button that permanently deletes a media item (photo / video) Title for button that permanently deletes one or more media items (photos / videos) @@ -2533,7 +2542,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Each block has its own settings. To find them, tap on a block. Its settings will appear on the toolbar at the bottom of the screen." = "Cada bloque tiene sus propios ajustes. Para encontrarlos, toca en un bloque. Sus ajustes aparecerán en la barra de herramientas de la parte inferior de la pantalla."; -/* Edit the post. +/* Accessibility label for edit button to enable multi selection mode in the user's media library + Edit the post. Editing GIF alert default action button. Edits a Comment Edits the comment @@ -2740,6 +2750,9 @@ translators: Block name. %s: The localized block name */ /* Secondary message shown when there are no domains that match the user entered text. */ "Enter different words above and we'll look for an address that matches it." = "Introduce arriba distintas palabras y buscaremos una dirección que coincida."; +/* Accessibility hint for edit button to enable multi selection mode in the user's media library */ +"Enter edit mode to enable multi select to delete" = "Entra en el modo de edición para permitir la selección múltiple a la hora de borrar"; + /* (placeholder) Help enter WordPress password Placeholder of a field to type a password to protect the post. */ "Enter password" = "Escribe contraseña"; @@ -2790,9 +2803,6 @@ translators: Block name. %s: The localized block name */ /* There was an error activating a plugin, placeholder is the plugin name */ "Error activating %@." = "Error al activar %@."; -/* Message shown when approving a Comment fails. */ -"Error approving comment" = "Error al aprobar el comentario"; - /* Message displayed when approving a comment fails. */ "Error approving comment." = "Error al aprobar el comentario."; @@ -2802,9 +2812,6 @@ translators: Block name. %s: The localized block name */ /* There was an error deactivating a plugin, placeholder is the plugin name */ "Error deactivating %@." = "Error al desactivar %@."; -/* Message shown when deleting a Comment fails. */ -"Error deleting comment" = "Error al borrar el comentario"; - /* Message displayed when deleting a comment fails. */ "Error deleting comment." = "Error al borrar el comentario."; @@ -2832,9 +2839,6 @@ translators: Block name. %s: The localized block name */ /* Messaged displayed when fetching plugins failed. */ "Error loading plugins" = "Error al cargar plugins"; -/* Message shown when marking a Comment as spam fails. */ -"Error marking comment as spam" = "Error al marcar el comentario como spam"; - /* Message displayed when spamming a comment fails. */ "Error marking comment as spam." = "Error al marcar el comentario como spam."; @@ -2874,12 +2878,12 @@ translators: Block name. %s: The localized block name */ /* Generic message shown when there was an error trying to re-send email verification. */ "Error sending verification email. Check your connection and try again." = "Error al enviar el correo electrónico de verificación. Comprueba tu conexión y vuelve a intentarlo."; +/* Message displayed when approving a comment fails. */ +"Error setting comment to approved." = "Error a establecer el comentario como aprobado."; + /* Message displayed when pending a comment fails. */ "Error setting comment to pending." = "Error estableciendo el comentario como pendiente."; -/* Message shown when unapproving a Comment fails. */ -"Error unapproving comment" = "Error al rechazar el comentario"; - /* There was an error updating a plugin, placeholder is the plugin name */ "Error updating %@." = "Error al actualizar %@."; @@ -3199,6 +3203,9 @@ translators: Block name. %s: The localized block name */ /* Next web page */ "Forward" = "Adelante"; +/* No comment provided by engineer. */ +"Four" = "Cuatro"; + /* Browse free themes selection title */ "Free" = "Gratuito"; @@ -3235,6 +3242,9 @@ translators: Block name. %s: The localized block name */ /* translators: accessibility text. %s: gallery caption. */ "Gallery caption. %s" = "Leyenda de la galería. %s"; +/* No comment provided by engineer. */ +"Gallery style" = "Estilo de galería"; + /* An example tag used in the login prologue screens. */ "Gardening" = "Jardinería"; @@ -3853,6 +3863,9 @@ translators: Block name. %s: The localized block name */ User's Last Name */ "Last Name" = "Apellidos"; +/* Content of a weekly roundup push notification containing stats about the user's site. The % markers are placeholders and will be replaced by the appropriate number of views, comments, and likes. The numbers indicate the order, so they can be rearranged if necessary – 1 is views, 2 is comments, 3 is likes. */ +"Last week you had %1$d views, %2$d comments and %3$d likes." = "La semana pasada tuviste %1$d visitas, %2$d comentarios y %3$d me gusta"; + /* Insights latest post summary header */ "Latest Post Summary" = "Resumen de las últimas entradas"; @@ -4442,6 +4455,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Navigates to customize the gradient" = "Navega para personalizar el degradado"; +/* No comment provided by engineer. */ +"Navigates to layout selection screen" = "Navega a la pantalla de selección del diseño"; + /* translators: %s: Select control button label e.g. Small translators: %s: Select control button label e.g. \"Button width\" */ "Navigates to select %s" = "Navega para seleccionar %s"; @@ -4513,6 +4529,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Table view title for the quick start section. */ "Next Steps" = "Siguientes pasos"; +/* Accessibility label for the button which shows the previous month in the monthly calendar view */ +"Next month" = "Mes siguiente"; + /* Accessibility label for the next notification button */ "Next notification" = "Siguiente notificación"; @@ -4611,6 +4630,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ Text shown when there is no data to display in the stats list view. */ "No data yet" = "Aún no hay datos"; +/* Accessibility label for no currently selected range. */ +"No date range selected" = "No se ha seleccionado ningún rango de fechas"; + /* Title for the view when there aren't any fixed threats to display */ "No fixed threats" = "No hay ninguna amenaza corregida"; @@ -4886,12 +4908,18 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* A subtitle with more detailed info for the user when no WordPress.com sites could be found. */ "Once you create a WordPress.com site, you can reblog content that you like to your own site." = "Una vez que crees un sitio en WordPress.com, puedes volver a publicar el contenido que te gusta en tu propio sitio."; +/* No comment provided by engineer. */ +"One" = "Uno"; + /* Subtitle displayed when the user has removed all Insights from display. */ "Only see the most relevant stats. Add insights to fit your needs." = "Ver solo las estadísticas más relevantes. Añade las perspectivas que encajan con tus necesidades."; /* No comment provided by engineer. */ "Only show excerpt" = "Mostrar solo el extracto"; +/* Message telling the user that they've only enabled limited photo library permissions for the app. */ +"Only the selected photos you've given access to are available." = "Solo están disponibles las fotos seleccionadas a las que hayas dado acceso."; + /* An informal exclaimation that means `something went wrong`. Title for the view when there's an error loading Activity Log Title for the view when there's an error loading scan status @@ -5478,6 +5506,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Description of a Quick Start Tour */ "Preview your new site to see what your visitors will see." = "Previsualiza tu nuevo sitio para ver lo que verán tus visitantes."; +/* Accessibility label for the button which shows the previous month in the monthly calendar view */ +"Previous month" = "Mes anterior"; + /* Accessibility label for the previous notification button */ "Previous notification" = "Notificación anterior"; @@ -5775,7 +5806,7 @@ translators: %s: Select control button label e.g. \"Button width\" */ "Remove Site Icon" = "Quitar icono del sitio"; /* No comment provided by engineer. */ -"Remove as Featured Image " = "Eliminar como imagen destacada"; +"Remove as Featured Image" = "Eliminar como imagen destacada"; /* No comment provided by engineer. */ "Remove block" = "Eliminar bloque"; @@ -6235,6 +6266,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Register Domain - Domain contact information field placeholder for Country */ "Select Country" = "Seleccionar país"; +/* Title of button that allows the user to select more photos to access within the app */ +"Select More" = "Seleccionar más"; + /* Blog Picker's Title */ "Select Site" = "Seleccionar sitio"; @@ -6298,6 +6332,12 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Error message when user tries a no longer existent video media object. */ "Selected media is unavailable." = "El elemento multimedia seleccionado no está disponible."; +/* Accessibility label for summary of currently single date. %1$@ is the date */ +"Selected range: %1$@ only" = "Rango seleccionado: Solo %1$@"; + +/* Accessibility label for summary of currently selected range. %1$@ is the start date, %2$@ is the end date. */ +"Selected range: %1$@ to %2$@" = "Rango seleccionado: %1$@ a %2$@"; + /* translators: %s: Select font size option value e.g: \"Selected: Large\". translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Selected: %s" = "Selecionado: %s"; @@ -6358,7 +6398,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Set Parent" = "Establecer como padre"; /* No comment provided by engineer. */ -"Set as Featured Image " = "Establecer como imagen destacada"; +"Set as Featured Image" = "Establecer como imagen destacada"; /* Label for a button that sets the selected page as the site's Homepage */ "Set as Homepage" = "Configurar como página de inicio"; @@ -6576,6 +6616,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Title for the Language Picker View */ "Site Language" = "Idioma del sitio"; +/* Title for the site menu view on the My Site screen */ +"Site Menu" = "Menú del sitio"; + /* Describes a site redirect domain */ "Site Redirect" = "Redirección de sitio"; @@ -6763,7 +6806,6 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Button title for Spam comment state. Marks comment as spam. - Spam Title of spam Comments filter. */ "Spam" = "Spam"; @@ -7106,7 +7148,8 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Description shown when a user logs in with Google but no matching WordPress.com account is found */ "The Google account \"%@\" doesn't match any account on WordPress.com" = "La cuenta de Google «%@» no coincide con ninguna cuenta de WordPress.com"; -/* Message of error prompt shown when a user tries to perform an action without an internet connection. */ +/* Error message shown when a media upload fails because the user isn't connected to the Internet. + Message of error prompt shown when a user tries to perform an action without an internet connection. */ "The Internet connection appears to be offline." = "No estás conectado a internet."; /* Message informing the user that the site title can only be changed by an administrator user. */ @@ -7145,8 +7188,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Message shown when an image failed to load while trying to add it to the Media library. */ "The image could not be added to the Media Library." = "No se pudo añadir la imagen a la biblioteca de medios."; -/* Error message shown when a media upload fails because the user isn't connected to the internet. - Message of error prompt shown when a user tries to perform an action without an internet connection. */ +/* Message of error prompt shown when a user tries to perform an action without an internet connection. */ "The internet connection appears to be offline." = "Parece que no hay conexión a internet."; /* Message shown when an asset failed to load while trying to add it to the Media library. */ @@ -7182,6 +7224,12 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Description shown in alert to confirm skipping all quick start items */ "The quick start tour will guide you through building a basic site. Are you sure you want to skip? " = "La guía de inicio rápido te enseña cómo construir un sitio básico. ¿Seguro que te la quieres saltar? "; +/* A failure reason for when the request couldn't be serialized. */ +"The serialization of the request failed." = "La serialización de la solicitud ha fallado."; + +/* A failure reason for when the response couldn't be serialized. */ +"The serialization of the response failed." = "La serialización de la respuesta ha fallado."; + /* No comment provided by engineer. */ "The server returned an empty response. This usually means you need to increase the memory limit for your site." = "El servidor ha enviado una respuesta vacía. Normalmente esto significa que tienes que ampliar el límite de memoria para tu sitio."; @@ -7282,6 +7330,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Error message informing the user that there was a problem blocking posts from a site from their reader. */ "There was a problem blocking posts from the specified site." = "Ha habido un problema al bloquear las entradas del sitio especificado."; +/* A general error message shown to the user when there was an API communication failure. */ +"There was a problem communicating with the site." = "Ha ocurrido un problema al comunicar con el sitio."; + /* Message for the warning shown to the user when the app realizes there should be an auth token but there isn't one. */ "There was a problem connecting to WordPress.com. Please log in again." = "Se ha producido un problema al conectar con WordPress.com. Inicia sesión de nuevo."; @@ -7450,12 +7501,18 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Message displayed when a threat is ignored successfully. */ "Threat ignored." = "Amenaza ignorada."; +/* No comment provided by engineer. */ +"Three" = "Tres"; + /* Thumbnail image size. Should be the same as in core WP. */ "Thumbnail" = "Miniatura"; /* Message shown if a thumbnail preview of a media item unavailable. */ "Thumbnail unavailable." = "Miniatura no disponible."; +/* No comment provided by engineer. */ +"Tiled gallery settings" = "Ajustes de la galería de mosaico"; + /* Blog Writing Settings: Time Format Writing Time Format Settings Title */ "Time Format" = "Formato horario"; @@ -7600,13 +7657,16 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* No comment provided by engineer. */ "Transform block…" = "Transformar bloque…"; -/* Accessibility label for trash buttons in nav bars +/* Accessibility label for trash button to delete items from the user's media library + Accessibility label for trash buttons in nav bars Button title for Trash comment state. - Trash button title Trashes a comment Trashes the comment */ "Trash" = "Papelera"; +/* Accessibility hint for trash button to delete items from the user's media library */ +"Trash selected media" = "Enviar a la papelera los medios seleccionados"; + /* Title of the trash page confirmation alert. */ "Trash this page?" = "¿Enviar esta página a la papelera?"; @@ -7687,6 +7747,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Title for the setting to edit the twitter username used when sharing to twitter. */ "Twitter Username" = "Nombre de usuario de Twitter"; +/* No comment provided by engineer. */ +"Two" = "Dos"; + /* Type menu item in share extension. */ "Type" = "Tipo"; @@ -7783,7 +7846,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Unable to play video" = "No ha sido posible reproducir el vídeo"; /* No comment provided by engineer. */ -"Unable to read the WordPress site at that URL. Tap 'Need Help?' to view the FAQ." = "No ha sido posible leer el sitio de WordPress en esa URL. Pulsa «¿Necesitas ayuda?» para ver las FAQ."; +"Unable to read the WordPress site at that URL. Tap 'Need more help?' to view the FAQ." = "No ha sido posible leer el sitio de WordPress en esa URL. Pulsa «¿Necesitas ayuda?» para ver las FAQ."; /* Title for the Jetpack Restore Failed message. */ "Unable to restore your site" = "No es posible restaurar tu sitio"; @@ -7866,6 +7929,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Underline" = "Subrayado"; /* Button in the notification presented in Reader when a post removed from saved for later + Button title. Reverts a comment moderation action. Button title. Reverts the previous notification operation Revert an operation The title of an 'undo' button. Tapping the button moves a trashed page out of the trash folder. @@ -8524,9 +8588,13 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Blog Writing Settings: Weeks starts on */ "Week starts on" = "La semana empieza el"; -/* Setting: indicates if the site reports its Weekly Roundup */ +/* Setting: indicates if the site reports its Weekly Roundup + Title of Weekly Roundup push notification */ "Weekly Roundup" = "Resumen semanal"; +/* Title of Weekly Roundup push notification. %@ is a placeholder and will be replaced with the title of one of the user's websites. */ +"Weekly Roundup: %@" = "Resumen semanal: %@"; + /* Title of Weeks stats filter. */ "Weeks" = "Semanas"; @@ -8830,12 +8898,12 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* A text for subtitle label on Login epilogue screen */ "You can switch sites at any time." = "Puedes cambiar los sitios en cualquier momento."; +/* Prompt shown on the Blogging Reminders Settings screen. */ +"You can update this any time" = "Puedes actualizar esto en cualquier momento"; + /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "Puedes actualizar esto en cualquier momento desde Mi sitio > Ajustes del sitio"; -/* Prompt shown on the Blogging Reminders Settings screen. */ -"You can update this anytime" = "Puedes actualizar esto en cualquier momento"; - /* No comment provided by engineer. */ "You cannot use that email address to signup. We are having problems with them blocking some of our email. Please use another email provider." = "No puedes usar este correo electrónico para registrarte. Estamos teniendo problemas con él, bloquea nuestros correos electrónicos. Por favor, usa otro proveedor."; @@ -9059,6 +9127,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* The default Jetpack view message */ "Your website credentials will not be stored and are used only for the purpose of installing Jetpack." = "Las credenciales de tu web no se almacenarán y solo se usarán para instalar Jetpack."; +/* Prompt displayed as part of the stats Weekly Roundup push notification. */ +"Your weekly roundup is ready, tap here to see the details!" = "¡Tu resumen semanal está listo, toca aquí para ver los detalles!"; + /* Describes the expected behavior when the user disables in-app notifications in Reader Comments. */ "You’re following this conversation. You will receive an email and a notification whenever a new comment is made." = "Estás siguiendo esta conversación. Recibirás un correo electrónico y un aviso cada vez que se haga un nuevo comentario."; diff --git a/WordPress/Resources/fr.lproj/Localizable.strings b/WordPress/Resources/fr.lproj/Localizable.strings index 0652e25b5c38..6cdf6ad983d2 100644 --- a/WordPress/Resources/fr.lproj/Localizable.strings +++ b/WordPress/Resources/fr.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2022-01-20 22:19:44+0000 */ +/* Translation-Revision-Date: 2022-01-25 22:15:05+0000 */ /* Plural-Forms: nplurals=2; plural=n > 1; */ /* Generator: GlotPress/3.0.0-alpha.2 */ /* Language: fr */ @@ -468,7 +468,8 @@ translators: Block name. %s: The localized block name */ /* Label for the Activity Type filter button when there are more than 1 activity type selected */ "Activity Type (%1$d)" = "Type d’activité (%1$d)"; -/* Remove asset from media picker list */ +/* Accessibility label for add button to add items to the user's media library + Remove asset from media picker list */ "Add" = "Ajouter"; /* Action for Media Picker to indicate selection of media. The argument in the string represents the number of elements (as numeric digits) selected */ @@ -564,6 +565,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Add menu item to children" = "Ajouter un élément de menu au sous-élément"; +/* Accessibility hint for add button to add items to the user's media library */ +"Add new media" = "Ajouter un nouveau média"; + /* Screen reader text for Menus button that adds a new menu to a site. */ "Add new menu" = "Ajouter un nouveau menu"; @@ -704,6 +708,12 @@ translators: Block name. %s: The localized block name */ /* Title of a row displayed on the debug screen used to indicate whether crash logs should be forced to send, even if they otherwise wouldn't */ "Always Send Crash Logs" = "Toujours envoyer un journal de plantage"; +/* A failure reason for when an error HTTP status code was returned from the site, with the specific error code. */ +"An HTTP error code %i was returned." = "Un code d’erreur HTTP %i a été reçu."; + +/* A failure reason for when an error HTTP status code was returned from the site. */ +"An HTTP error code was returned." = "Un code d’erreur HTTP a été reçu."; + /* Error message when loading failed because there's no connection */ "An active internet connection is required" = "Une connexion internet est obligatoire"; @@ -756,6 +766,9 @@ translators: Block name. %s: The localized block name */ /* Text displayed when a stat section failed to load. */ "An error occurred." = "Une erreur est survenue."; +/* A failure reason for when the error that occured wasn't able to be determined. */ +"An unknown error occurred." = "Une erreur inconnue est survenue."; + /* Error message shown when a media upload fails for unknown reason and the user should try again. */ "An unknown error occurred. Please try again." = "Un erreur inconnue s’est produite. Veuillez ré-essayer."; @@ -817,18 +830,9 @@ translators: Block name. %s: The localized block name */ /* Message prompting the user to confirm that they want to disconnect Jetpack from the site. */ "Are you sure you want to disconnect Jetpack from the site?" = "Confirmez-vous vouloir déconnecter Jetpack de votre site ?"; -/* Message asking for confirmation before marking a comment as spam */ -"Are you sure you want to mark this comment as Spam?" = "Êtes-vous sûr de vouloir marquer ce commentaire comme indésirable ?"; - -/* Message asking for confirmation before marking a comment as trash */ -"Are you sure you want to mark this comment as Trash?" = "Voulez-vous vraiment marquer ce commentaire comme indésirable ?"; - /* Message prompting the user to confirm that they want to permanently delete a group of media items. */ "Are you sure you want to permanently delete these items?" = "Êtes-vous sûr de vouloir supprimer définitivement les éléments sélectionnés ?"; -/* Message asking for confirmation on comment deletion */ -"Are you sure you want to permanently delete this comment?" = "Voulez-vous vraiment supprimer définitivement ce commentaire ?"; - /* Message prompting the user to confirm that they want to permanently delete a media item. Should match Calypso. */ "Are you sure you want to permanently delete this item?" = "Confirmez-vous vouloir supprimer définitivement cet élément ?"; @@ -1292,6 +1296,9 @@ translators: Block name. %s: The localized block name */ Main title */ "Change Password" = "Changer le mot de passe"; +/* Title of button that takes user to the system Settings section for the app */ +"Change Settings" = "Modifier les réglages"; + /* Title of an alert prompting the user that they are about to change the blog they are posting to. */ "Change Site" = "Changement de site"; @@ -1587,6 +1594,9 @@ translators: Block name. %s: The localized block name */ My First Post */ "Comment on" = "Commentaire sur"; +/* Message displayed when approving a comment succeeds. */ +"Comment set to approved." = "Commentaire approuvé."; + /* Message displayed when pending a comment succeeds. */ "Comment set to pending." = "Commentaire mis en attente."; @@ -1677,8 +1687,7 @@ translators: Block name. %s: The localized block name */ /* Section title for the configure table section in the blog details screen */ "Configure" = "Configurer"; -/* Confirm - Verb. Title for Jetpack Restore confirm button. */ +/* Verb. Title for Jetpack Restore confirm button. */ "Confirm" = "Confirmer"; /* Close Account alert title */ @@ -2117,7 +2126,8 @@ translators: Block name. %s: The localized block name */ /* Title for the app appearance setting for dark mode */ "Dark" = "Sombre"; -/* Action title. Noun. Opens the user's WordPress.com dashboard in an external browser. */ +/* Action title. Noun. Opens the user's WordPress.com dashboard in an external browser. + Title for dashboard view on the My Site screen */ "Dashboard" = "Tableau de bord"; /* Title for a threat that includes the number of database rows affected */ @@ -2174,7 +2184,6 @@ translators: Block name. %s: The localized block name */ "Defaults for New Posts" = "Paramètres par défaut pour les nouveaux articles"; /* Delete - Delete button title Delete button title for the warning shown to the user when he refuses to re-login when the authToken is missing. Title for button that permanently deletes a media item (photo / video) Title for button that permanently deletes one or more media items (photos / videos) @@ -2533,7 +2542,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Each block has its own settings. To find them, tap on a block. Its settings will appear on the toolbar at the bottom of the screen." = "Chaque bloc possède ses propres réglages. Pour les trouver, appuyez sur un bloc. Ses réglages apparaissent sur la barre d’outils en bas de l’écran."; -/* Edit the post. +/* Accessibility label for edit button to enable multi selection mode in the user's media library + Edit the post. Editing GIF alert default action button. Edits a Comment Edits the comment @@ -2740,6 +2750,9 @@ translators: Block name. %s: The localized block name */ /* Secondary message shown when there are no domains that match the user entered text. */ "Enter different words above and we'll look for an address that matches it." = "Saisissez des mots différents ci-dessus et nous regarderons si une adresse correspond."; +/* Accessibility hint for edit button to enable multi selection mode in the user's media library */ +"Enter edit mode to enable multi select to delete" = "Passez en mode d’édition pour activer la suppression multiple"; + /* (placeholder) Help enter WordPress password Placeholder of a field to type a password to protect the post. */ "Enter password" = "Saisissez un mot de passe"; @@ -2790,9 +2803,6 @@ translators: Block name. %s: The localized block name */ /* There was an error activating a plugin, placeholder is the plugin name */ "Error activating %@." = "Erreur lors de l’activation de %@."; -/* Message shown when approving a Comment fails. */ -"Error approving comment" = "Erreur lors de l’approbation du commentaire"; - /* Message displayed when approving a comment fails. */ "Error approving comment." = "Erreur lors de l’approbation du commentaire."; @@ -2802,9 +2812,6 @@ translators: Block name. %s: The localized block name */ /* There was an error deactivating a plugin, placeholder is the plugin name */ "Error deactivating %@." = "Erreur lors de la désactivation de %@."; -/* Message shown when deleting a Comment fails. */ -"Error deleting comment" = "Erreur lors de la suppression du commentaire"; - /* Message displayed when deleting a comment fails. */ "Error deleting comment." = "Erreur lors de la suppression du commentaire."; @@ -2832,9 +2839,6 @@ translators: Block name. %s: The localized block name */ /* Messaged displayed when fetching plugins failed. */ "Error loading plugins" = "Erreur lors du chargement des extensions."; -/* Message shown when marking a Comment as spam fails. */ -"Error marking comment as spam" = "Erreur lors du marquage du commentaire comme indésirable"; - /* Message displayed when spamming a comment fails. */ "Error marking comment as spam." = "Erreur lors du marquage du commentaire comme indésirable."; @@ -2874,12 +2878,12 @@ translators: Block name. %s: The localized block name */ /* Generic message shown when there was an error trying to re-send email verification. */ "Error sending verification email. Check your connection and try again." = "L’envoi de l’e-mail de vérification a échoué. Vérifiez votre connexion et essayez à nouveau."; +/* Message displayed when approving a comment fails. */ +"Error setting comment to approved." = "Erreur de validation d’un commentaire."; + /* Message displayed when pending a comment fails. */ "Error setting comment to pending." = "Erreur de mise en attente d’un commentaire."; -/* Message shown when unapproving a Comment fails. */ -"Error unapproving comment" = "Erreur lors de la désapprobation du commentaire"; - /* There was an error updating a plugin, placeholder is the plugin name */ "Error updating %@." = "Erreur lors de la mise à jour de %@."; @@ -3199,6 +3203,9 @@ translators: Block name. %s: The localized block name */ /* Next web page */ "Forward" = "Transmettre"; +/* No comment provided by engineer. */ +"Four" = "Quatre"; + /* Browse free themes selection title */ "Free" = "Gratuit"; @@ -3235,6 +3242,9 @@ translators: Block name. %s: The localized block name */ /* translators: accessibility text. %s: gallery caption. */ "Gallery caption. %s" = "Légende de la galerie. %s"; +/* No comment provided by engineer. */ +"Gallery style" = "Style de la galerie"; + /* An example tag used in the login prologue screens. */ "Gardening" = "Jardinage"; @@ -3853,6 +3863,9 @@ translators: Block name. %s: The localized block name */ User's Last Name */ "Last Name" = "Nom"; +/* Content of a weekly roundup push notification containing stats about the user's site. The % markers are placeholders and will be replaced by the appropriate number of views, comments, and likes. The numbers indicate the order, so they can be rearranged if necessary – 1 is views, 2 is comments, 3 is likes. */ +"Last week you had %1$d views, %2$d comments and %3$d likes." = "La semaine dernière, vous avez eu %1$d vues, %2$d commentaires et %3$d appréciations."; + /* Insights latest post summary header */ "Latest Post Summary" = "Résumé du dernier article"; @@ -4442,6 +4455,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Navigates to customize the gradient" = "Naviguer pour personnaliser le dégradé"; +/* No comment provided by engineer. */ +"Navigates to layout selection screen" = "Ouvrir l’écran de sélection de la mise en page"; + /* translators: %s: Select control button label e.g. Small translators: %s: Select control button label e.g. \"Button width\" */ "Navigates to select %s" = "Navigue pour sélectionner %s"; @@ -4513,6 +4529,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Table view title for the quick start section. */ "Next Steps" = "Étapes suivantes"; +/* Accessibility label for the button which shows the previous month in the monthly calendar view */ +"Next month" = "Mois suivant"; + /* Accessibility label for the next notification button */ "Next notification" = "Notification suivante"; @@ -4611,6 +4630,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ Text shown when there is no data to display in the stats list view. */ "No data yet" = "Aucune donnée pour le moment."; +/* Accessibility label for no currently selected range. */ +"No date range selected" = "Pas de plage de date sélectionnée"; + /* Title for the view when there aren't any fixed threats to display */ "No fixed threats" = "Aucune menace corrigée"; @@ -4886,12 +4908,18 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* A subtitle with more detailed info for the user when no WordPress.com sites could be found. */ "Once you create a WordPress.com site, you can reblog content that you like to your own site." = "Une fois que vous avez créé un site, vous pouvez rebloguer un contenu que vous avez aimé sur votre propre site."; +/* No comment provided by engineer. */ +"One" = "Une"; + /* Subtitle displayed when the user has removed all Insights from display. */ "Only see the most relevant stats. Add insights to fit your needs." = "Afficher uniquement les statistiques pertinentes. Ajouter des thématiques pour répondre à vos besoins."; /* No comment provided by engineer. */ "Only show excerpt" = "N’afficher que l’extrait"; +/* Message telling the user that they've only enabled limited photo library permissions for the app. */ +"Only the selected photos you've given access to are available." = "Seules les photos sélectionnées auxquelles vous avez donné accès sont disponibles."; + /* An informal exclaimation that means `something went wrong`. Title for the view when there's an error loading Activity Log Title for the view when there's an error loading scan status @@ -5478,6 +5506,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Description of a Quick Start Tour */ "Preview your new site to see what your visitors will see." = "Prévisualisez votre nouveau site pour voir ce que votre visiteurs verra."; +/* Accessibility label for the button which shows the previous month in the monthly calendar view */ +"Previous month" = "Mois précédent"; + /* Accessibility label for the previous notification button */ "Previous notification" = "Notification précédente"; @@ -5775,7 +5806,7 @@ translators: %s: Select control button label e.g. \"Button width\" */ "Remove Site Icon" = "Retirer l’icône du site"; /* No comment provided by engineer. */ -"Remove as Featured Image " = "Retirer en tant qu’image mise en avant "; +"Remove as Featured Image" = "Ne plus utiliser comme image mise en avant"; /* No comment provided by engineer. */ "Remove block" = "Retirer le bloc"; @@ -6235,6 +6266,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Register Domain - Domain contact information field placeholder for Country */ "Select Country" = "Choisir le pays"; +/* Title of button that allows the user to select more photos to access within the app */ +"Select More" = "En sélectionner plus"; + /* Blog Picker's Title */ "Select Site" = "Sélectionner le site"; @@ -6298,6 +6332,12 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Error message when user tries a no longer existent video media object. */ "Selected media is unavailable." = "Le média sélectionné n’est pas disponible."; +/* Accessibility label for summary of currently single date. %1$@ is the date */ +"Selected range: %1$@ only" = "Plage sélectionnée : %1$@ uniquement"; + +/* Accessibility label for summary of currently selected range. %1$@ is the start date, %2$@ is the end date. */ +"Selected range: %1$@ to %2$@" = "Plage sélectionnée : %1$@ à %2$@"; + /* translators: %s: Select font size option value e.g: \"Selected: Large\". translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Selected: %s" = "Sélectionné : %s"; @@ -6358,7 +6398,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Set Parent" = "Configurer le parent"; /* No comment provided by engineer. */ -"Set as Featured Image " = "Définir en tant qu’image mise en avant "; +"Set as Featured Image" = "Définir en tant qu’image mise en avant"; /* Label for a button that sets the selected page as the site's Homepage */ "Set as Homepage" = "Définir comme page d’accueil"; @@ -6576,6 +6616,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Title for the Language Picker View */ "Site Language" = "Langue du site"; +/* Title for the site menu view on the My Site screen */ +"Site Menu" = "Menu du site"; + /* Describes a site redirect domain */ "Site Redirect" = "Redirection de site"; @@ -6763,7 +6806,6 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Button title for Spam comment state. Marks comment as spam. - Spam Title of spam Comments filter. */ "Spam" = "Indésirable"; @@ -7106,7 +7148,8 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Description shown when a user logs in with Google but no matching WordPress.com account is found */ "The Google account \"%@\" doesn't match any account on WordPress.com" = "Le compte Google « %@ » ne correspond pas avec le compte WordPress.com."; -/* Message of error prompt shown when a user tries to perform an action without an internet connection. */ +/* Error message shown when a media upload fails because the user isn't connected to the Internet. + Message of error prompt shown when a user tries to perform an action without an internet connection. */ "The Internet connection appears to be offline." = "La connexion Internet semble inactive. "; /* Message informing the user that the site title can only be changed by an administrator user. */ @@ -7145,8 +7188,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Message shown when an image failed to load while trying to add it to the Media library. */ "The image could not be added to the Media Library." = "L’image n’a pas pu être ajoutée à la médiathèque."; -/* Error message shown when a media upload fails because the user isn't connected to the internet. - Message of error prompt shown when a user tries to perform an action without an internet connection. */ +/* Message of error prompt shown when a user tries to perform an action without an internet connection. */ "The internet connection appears to be offline." = "La connexion Internet semble inactive."; /* Message shown when an asset failed to load while trying to add it to the Media library. */ @@ -7182,6 +7224,12 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Description shown in alert to confirm skipping all quick start items */ "The quick start tour will guide you through building a basic site. Are you sure you want to skip? " = "Le guide de démarrage rapide vous guidera pour construire un site de base. Confirmez-vous vouloir le passer ?"; +/* A failure reason for when the request couldn't be serialized. */ +"The serialization of the request failed." = "La sérialisation de la requête a échoué."; + +/* A failure reason for when the response couldn't be serialized. */ +"The serialization of the response failed." = "La sérialisation de la réponse a échoué."; + /* No comment provided by engineer. */ "The server returned an empty response. This usually means you need to increase the memory limit for your site." = "Le serveur a renvoyé une réponse vide. Cela signifie généralement que vous devez augmenter la limite mémoire de votre site."; @@ -7282,6 +7330,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Error message informing the user that there was a problem blocking posts from a site from their reader. */ "There was a problem blocking posts from the specified site." = "Un problème a bloqué les articles de ce site"; +/* A general error message shown to the user when there was an API communication failure. */ +"There was a problem communicating with the site." = "Un problème est survenu lors de la communication avec le site."; + /* Message for the warning shown to the user when the app realizes there should be an auth token but there isn't one. */ "There was a problem connecting to WordPress.com. Please log in again." = "Un problème est survenu lors de la connexion à WordPress.com. Veuillez vous reconnecter."; @@ -7450,12 +7501,18 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Message displayed when a threat is ignored successfully. */ "Threat ignored." = "Menace ignorée."; +/* No comment provided by engineer. */ +"Three" = "Trois"; + /* Thumbnail image size. Should be the same as in core WP. */ "Thumbnail" = "Miniature"; /* Message shown if a thumbnail preview of a media item unavailable. */ "Thumbnail unavailable." = "Miniature non disponible"; +/* No comment provided by engineer. */ +"Tiled gallery settings" = "Réglages de la mosaïque d’images"; + /* Blog Writing Settings: Time Format Writing Time Format Settings Title */ "Time Format" = "Format de l’heure"; @@ -7600,13 +7657,16 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* No comment provided by engineer. */ "Transform block…" = "Transformer le bloc…"; -/* Accessibility label for trash buttons in nav bars +/* Accessibility label for trash button to delete items from the user's media library + Accessibility label for trash buttons in nav bars Button title for Trash comment state. - Trash button title Trashes a comment Trashes the comment */ "Trash" = "Déplacer vers la corbeille"; +/* Accessibility hint for trash button to delete items from the user's media library */ +"Trash selected media" = "Mettre à la corbeille le fichier média sélectionné"; + /* Title of the trash page confirmation alert. */ "Trash this page?" = "Déplacer cette page vers la corbeille ?"; @@ -7687,6 +7747,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Title for the setting to edit the twitter username used when sharing to twitter. */ "Twitter Username" = "Identifiant Twitter"; +/* No comment provided by engineer. */ +"Two" = "Deux"; + /* Type menu item in share extension. */ "Type" = "Type"; @@ -7783,7 +7846,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Unable to play video" = "Impossible de lancer la vidéo"; /* No comment provided by engineer. */ -"Unable to read the WordPress site at that URL. Tap 'Need Help?' to view the FAQ." = "Impossible de trouver un site WordPress à cette adresse. Touchez « Besoin d'aide ? » pour voir la FAQ."; +"Unable to read the WordPress site at that URL. Tap 'Need more help?' to view the FAQ." = "Impossible de trouver un site WordPress à cette adresse. Touchez « Besoin d'aide ? » pour voir la FAQ."; /* Title for the Jetpack Restore Failed message. */ "Unable to restore your site" = "Impossible de restaurer votre site"; @@ -7866,6 +7929,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Underline" = "Souligner"; /* Button in the notification presented in Reader when a post removed from saved for later + Button title. Reverts a comment moderation action. Button title. Reverts the previous notification operation Revert an operation The title of an 'undo' button. Tapping the button moves a trashed page out of the trash folder. @@ -8524,9 +8588,13 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Blog Writing Settings: Weeks starts on */ "Week starts on" = "La semaine commence le"; -/* Setting: indicates if the site reports its Weekly Roundup */ +/* Setting: indicates if the site reports its Weekly Roundup + Title of Weekly Roundup push notification */ "Weekly Roundup" = "Résumé hebdomadaire"; +/* Title of Weekly Roundup push notification. %@ is a placeholder and will be replaced with the title of one of the user's websites. */ +"Weekly Roundup: %@" = "Résumé hebdomadaire : %@"; + /* Title of Weeks stats filter. */ "Weeks" = "Semaines"; @@ -8830,12 +8898,12 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* A text for subtitle label on Login epilogue screen */ "You can switch sites at any time." = "Vous pouvez changer de site à tout moment."; +/* Prompt shown on the Blogging Reminders Settings screen. */ +"You can update this any time" = "Vous pouvez le modifier à tout moment"; + /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "Vous pouvez le mettre à jour à tout moment via Mon site > Réglages du site"; -/* Prompt shown on the Blogging Reminders Settings screen. */ -"You can update this anytime" = "Vous pouvez le mettre à jour à tout moment"; - /* No comment provided by engineer. */ "You cannot use that email address to signup. We are having problems with them blocking some of our email. Please use another email provider." = "Vous ne pouvez pas utiliser cette adresse e-mail pour vous inscrire. Nous rencontrons des problèmes avec ce service qui bloque parfois nos e-mails. Veuillez utiliser un autre fournisseur d'e-mail."; @@ -9059,6 +9127,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* The default Jetpack view message */ "Your website credentials will not be stored and are used only for the purpose of installing Jetpack." = "Vos informations d’identification sur le site Web ne seront pas conservées. Elles sont utilisées afin d’installer Jetpack uniquement."; +/* Prompt displayed as part of the stats Weekly Roundup push notification. */ +"Your weekly roundup is ready, tap here to see the details!" = "Votre résumé hebdomadaire est prêt, tapez ici pour lire les détails !"; + /* Describes the expected behavior when the user disables in-app notifications in Reader Comments. */ "You’re following this conversation. You will receive an email and a notification whenever a new comment is made." = "Vous êtes abonné à cette conversation. Vous recevrez un e-mail et une notification dès l’ajout d’un commentaire."; diff --git a/WordPress/Resources/he.lproj/Localizable.strings b/WordPress/Resources/he.lproj/Localizable.strings index e6be8e6ca301..f37bbfe663b3 100644 --- a/WordPress/Resources/he.lproj/Localizable.strings +++ b/WordPress/Resources/he.lproj/Localizable.strings @@ -468,7 +468,8 @@ translators: Block name. %s: The localized block name */ /* Label for the Activity Type filter button when there are more than 1 activity type selected */ "Activity Type (%1$d)" = "סוג הפעילות (⁦%1$d⁩)"; -/* Remove asset from media picker list */ +/* Accessibility label for add button to add items to the user's media library + Remove asset from media picker list */ "Add" = "הוספה"; /* Action for Media Picker to indicate selection of media. The argument in the string represents the number of elements (as numeric digits) selected */ @@ -564,6 +565,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Add menu item to children" = "הוספת פריט תפריט לילדים"; +/* Accessibility hint for add button to add items to the user's media library */ +"Add new media" = "Add new media"; + /* Screen reader text for Menus button that adds a new menu to a site. */ "Add new menu" = "הוספת תפריט חדש"; @@ -704,6 +708,12 @@ translators: Block name. %s: The localized block name */ /* Title of a row displayed on the debug screen used to indicate whether crash logs should be forced to send, even if they otherwise wouldn't */ "Always Send Crash Logs" = "תמיד לשלוח דוחות קריסה"; +/* A failure reason for when an error HTTP status code was returned from the site, with the specific error code. */ +"An HTTP error code %i was returned." = "An HTTP error code %i was returned."; + +/* A failure reason for when an error HTTP status code was returned from the site. */ +"An HTTP error code was returned." = "An HTTP error code was returned."; + /* Error message when loading failed because there's no connection */ "An active internet connection is required" = "נדרש חיבור פעיל לאינטרנט"; @@ -756,6 +766,9 @@ translators: Block name. %s: The localized block name */ /* Text displayed when a stat section failed to load. */ "An error occurred." = "אירעה שגיאה."; +/* A failure reason for when the error that occured wasn't able to be determined. */ +"An unknown error occurred." = "An unknown error occurred."; + /* Error message shown when a media upload fails for unknown reason and the user should try again. */ "An unknown error occurred. Please try again." = "אירעה שגיאה לא מזוהה. יש לנסות שוב."; @@ -817,18 +830,9 @@ translators: Block name. %s: The localized block name */ /* Message prompting the user to confirm that they want to disconnect Jetpack from the site. */ "Are you sure you want to disconnect Jetpack from the site?" = "האם ברצונך לנתק את Jetpack מהאתר?"; -/* Message asking for confirmation before marking a comment as spam */ -"Are you sure you want to mark this comment as Spam?" = "האם אכן ברצונך לסמן תגובה זו כתגובת זבל?"; - -/* Message asking for confirmation before marking a comment as trash */ -"Are you sure you want to mark this comment as Trash?" = "האם ברצונך לסמן את התגובה הזאת כ'זבל'?"; - /* Message prompting the user to confirm that they want to permanently delete a group of media items. */ "Are you sure you want to permanently delete these items?" = "האם אתה בטוח שברצונך למחוק לצמיתות את הפריטים שנבחרו?"; -/* Message asking for confirmation on comment deletion */ -"Are you sure you want to permanently delete this comment?" = "האם ברצונך למחוק לצמיתות את התגובה הזאת?"; - /* Message prompting the user to confirm that they want to permanently delete a media item. Should match Calypso. */ "Are you sure you want to permanently delete this item?" = "האם אכן ברצונך למחוק פריט זה לצמיתות?"; @@ -1292,6 +1296,9 @@ translators: Block name. %s: The localized block name */ Main title */ "Change Password" = "שינוי סיסמה"; +/* Title of button that takes user to the system Settings section for the app */ +"Change Settings" = "Change Settings"; + /* Title of an alert prompting the user that they are about to change the blog they are posting to. */ "Change Site" = "שנה אתר"; @@ -1587,6 +1594,9 @@ translators: Block name. %s: The localized block name */ My First Post */ "Comment on" = "תגובה על"; +/* Message displayed when approving a comment succeeds. */ +"Comment set to approved." = "Comment set to approved."; + /* Message displayed when pending a comment succeeds. */ "Comment set to pending." = "התגובה הוגדרה ל'בהמתנה'."; @@ -1677,8 +1687,7 @@ translators: Block name. %s: The localized block name */ /* Section title for the configure table section in the blog details screen */ "Configure" = "הגדר"; -/* Confirm - Verb. Title for Jetpack Restore confirm button. */ +/* Verb. Title for Jetpack Restore confirm button. */ "Confirm" = "אשר"; /* Close Account alert title */ @@ -2117,7 +2126,8 @@ translators: Block name. %s: The localized block name */ /* Title for the app appearance setting for dark mode */ "Dark" = "צבעים כהים"; -/* Action title. Noun. Opens the user's WordPress.com dashboard in an external browser. */ +/* Action title. Noun. Opens the user's WordPress.com dashboard in an external browser. + Title for dashboard view on the My Site screen */ "Dashboard" = "לוח בקרה"; /* Title for a threat that includes the number of database rows affected */ @@ -2174,7 +2184,6 @@ translators: Block name. %s: The localized block name */ "Defaults for New Posts" = "ברירות מחדל עבור פוסטים חדשים"; /* Delete - Delete button title Delete button title for the warning shown to the user when he refuses to re-login when the authToken is missing. Title for button that permanently deletes a media item (photo / video) Title for button that permanently deletes one or more media items (photos / videos) @@ -2533,7 +2542,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Each block has its own settings. To find them, tap on a block. Its settings will appear on the toolbar at the bottom of the screen." = "לכל בלוק יש הגדרות משלו. כדי למצוא אותן, יש להקיש על הבלוק. ההגדרות שלו יופיעו בסרגל הכלים שנמצא בתחתית המסך."; -/* Edit the post. +/* Accessibility label for edit button to enable multi selection mode in the user's media library + Edit the post. Editing GIF alert default action button. Edits a Comment Edits the comment @@ -2740,6 +2750,9 @@ translators: Block name. %s: The localized block name */ /* Secondary message shown when there are no domains that match the user entered text. */ "Enter different words above and we'll look for an address that matches it." = "יש להזין מילים שונות למעלה ואנחנו נחפש כתובת שתתאים להן."; +/* Accessibility hint for edit button to enable multi selection mode in the user's media library */ +"Enter edit mode to enable multi select to delete" = "Enter edit mode to enable multi select to delete"; + /* (placeholder) Help enter WordPress password Placeholder of a field to type a password to protect the post. */ "Enter password" = "הזן סיסמה"; @@ -2790,9 +2803,6 @@ translators: Block name. %s: The localized block name */ /* There was an error activating a plugin, placeholder is the plugin name */ "Error activating %@." = "שגיאה בהפעלה של %@."; -/* Message shown when approving a Comment fails. */ -"Error approving comment" = "שגיאה באישור התגובה"; - /* Message displayed when approving a comment fails. */ "Error approving comment." = "שגיאה באישור התגובה."; @@ -2802,9 +2812,6 @@ translators: Block name. %s: The localized block name */ /* There was an error deactivating a plugin, placeholder is the plugin name */ "Error deactivating %@." = "שגיאה בהשבתה של %@."; -/* Message shown when deleting a Comment fails. */ -"Error deleting comment" = "שגיאה במחיקת התגובה"; - /* Message displayed when deleting a comment fails. */ "Error deleting comment." = "שגיאה במחיקת התגובה."; @@ -2832,9 +2839,6 @@ translators: Block name. %s: The localized block name */ /* Messaged displayed when fetching plugins failed. */ "Error loading plugins" = "שגיאה בטעינת התוספים"; -/* Message shown when marking a Comment as spam fails. */ -"Error marking comment as spam" = "שגיאה בסימון התגובה כתגובת זבל"; - /* Message displayed when spamming a comment fails. */ "Error marking comment as spam." = "שגיאה בסימון התגובה כתגובת זבל."; @@ -2874,12 +2878,12 @@ translators: Block name. %s: The localized block name */ /* Generic message shown when there was an error trying to re-send email verification. */ "Error sending verification email. Check your connection and try again." = "שגיאה בשליחה האימייל לאימות. יש לבדוק את החיבור ולנסות שוב."; +/* Message displayed when approving a comment fails. */ +"Error setting comment to approved." = "Error setting comment to approved."; + /* Message displayed when pending a comment fails. */ "Error setting comment to pending." = "שגיאה בהגדרת התגובה ל'בהמתנה'."; -/* Message shown when unapproving a Comment fails. */ -"Error unapproving comment" = "שגיאה בביטול האישור של התגובה"; - /* There was an error updating a plugin, placeholder is the plugin name */ "Error updating %@." = "שגיאה בעדכון ב %@."; @@ -3199,6 +3203,9 @@ translators: Block name. %s: The localized block name */ /* Next web page */ "Forward" = "העבר"; +/* No comment provided by engineer. */ +"Four" = "Four"; + /* Browse free themes selection title */ "Free" = "חינם"; @@ -3235,6 +3242,9 @@ translators: Block name. %s: The localized block name */ /* translators: accessibility text. %s: gallery caption. */ "Gallery caption. %s" = "כיתוב לגלריה. %s"; +/* No comment provided by engineer. */ +"Gallery style" = "Gallery style"; + /* An example tag used in the login prologue screens. */ "Gardening" = "גינון"; @@ -3853,6 +3863,9 @@ translators: Block name. %s: The localized block name */ User's Last Name */ "Last Name" = "שם משפחה"; +/* Content of a weekly roundup push notification containing stats about the user's site. The % markers are placeholders and will be replaced by the appropriate number of views, comments, and likes. The numbers indicate the order, so they can be rearranged if necessary – 1 is views, 2 is comments, 3 is likes. */ +"Last week you had %1$d views, %2$d comments and %3$d likes." = "Last week you had %1$d views, %2$d comments and %3$d likes."; + /* Insights latest post summary header */ "Latest Post Summary" = "סיכום פוסטים אחרונים"; @@ -4442,6 +4455,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Navigates to customize the gradient" = "הפעולה מנווטת אל האפשרות להתאים את מעבר הצבע"; +/* No comment provided by engineer. */ +"Navigates to layout selection screen" = "Navigates to layout selection screen"; + /* translators: %s: Select control button label e.g. Small translators: %s: Select control button label e.g. \"Button width\" */ "Navigates to select %s" = "העברה לבחירת %s"; @@ -4513,6 +4529,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Table view title for the quick start section. */ "Next Steps" = "לשלב הבא"; +/* Accessibility label for the button which shows the previous month in the monthly calendar view */ +"Next month" = "Next month"; + /* Accessibility label for the next notification button */ "Next notification" = "ההודעה הבאה"; @@ -4611,6 +4630,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ Text shown when there is no data to display in the stats list view. */ "No data yet" = "אין נתונים עדיין"; +/* Accessibility label for no currently selected range. */ +"No date range selected" = "No date range selected"; + /* Title for the view when there aren't any fixed threats to display */ "No fixed threats" = "אין איומים שתוקנו"; @@ -4886,12 +4908,18 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* A subtitle with more detailed info for the user when no WordPress.com sites could be found. */ "Once you create a WordPress.com site, you can reblog content that you like to your own site." = "לאחר יצירת אתר ב-WordPress.com, אפשר לפרסם מחדש בבלוג את התוכן שברצונך להציג באתר שלך."; +/* No comment provided by engineer. */ +"One" = "One"; + /* Subtitle displayed when the user has removed all Insights from display. */ "Only see the most relevant stats. Add insights to fit your needs." = "הצגה של הנתונים הסטטיסטיים הרלוונטיים ביותר בלבד. להוסיף תובנות שיתאימו לצרכיך."; /* No comment provided by engineer. */ "Only show excerpt" = "להציג את התקציר בלבד"; +/* Message telling the user that they've only enabled limited photo library permissions for the app. */ +"Only the selected photos you've given access to are available." = "Only the selected photos you've given access to are available."; + /* An informal exclaimation that means `something went wrong`. Title for the view when there's an error loading Activity Log Title for the view when there's an error loading scan status @@ -5478,6 +5506,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Description of a Quick Start Tour */ "Preview your new site to see what your visitors will see." = "באפשרותך להציג תצוגה מקדימה של האתר החדש כדי לבחון מה יראו המבקרים בו."; +/* Accessibility label for the button which shows the previous month in the monthly calendar view */ +"Previous month" = "Previous month"; + /* Accessibility label for the previous notification button */ "Previous notification" = "הודעה קודמת"; @@ -5775,7 +5806,7 @@ translators: %s: Select control button label e.g. \"Button width\" */ "Remove Site Icon" = "הסרת סמל האתר"; /* No comment provided by engineer. */ -"Remove as Featured Image " = "להסיר מהתמונה המרכזית "; +"Remove as Featured Image" = "Remove as Featured Image"; /* No comment provided by engineer. */ "Remove block" = "להסיר בלוק"; @@ -6235,6 +6266,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Register Domain - Domain contact information field placeholder for Country */ "Select Country" = "בחירת מדינה"; +/* Title of button that allows the user to select more photos to access within the app */ +"Select More" = "Select More"; + /* Blog Picker's Title */ "Select Site" = "בחירת אתר"; @@ -6298,6 +6332,12 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Error message when user tries a no longer existent video media object. */ "Selected media is unavailable." = "פריטי המדיה שנבחרו אינם זמינים."; +/* Accessibility label for summary of currently single date. %1$@ is the date */ +"Selected range: %1$@ only" = "Selected range: %1$@ only"; + +/* Accessibility label for summary of currently selected range. %1$@ is the start date, %2$@ is the end date. */ +"Selected range: %1$@ to %2$@" = "Selected range: %1$@ to %2$@"; + /* translators: %s: Select font size option value e.g: \"Selected: Large\". translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Selected: %s" = "נבחר %s"; @@ -6358,7 +6398,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Set Parent" = "הגדרת הורה"; /* No comment provided by engineer. */ -"Set as Featured Image " = "להגדיר כתמונה מרכזית "; +"Set as Featured Image" = "Set as Featured Image"; /* Label for a button that sets the selected page as the site's Homepage */ "Set as Homepage" = "להגדיר כעמוד הבית"; @@ -6576,6 +6616,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Title for the Language Picker View */ "Site Language" = "שפת אתר"; +/* Title for the site menu view on the My Site screen */ +"Site Menu" = "Site Menu"; + /* Describes a site redirect domain */ "Site Redirect" = "Site Redirect"; @@ -6763,7 +6806,6 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Button title for Spam comment state. Marks comment as spam. - Spam Title of spam Comments filter. */ "Spam" = "תגובות זבל"; @@ -7106,7 +7148,8 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Description shown when a user logs in with Google but no matching WordPress.com account is found */ "The Google account \"%@\" doesn't match any account on WordPress.com" = "חשבון ה-Google‏ \"%@\" לא תואם לשום חשבון ב-WordPress.com‏"; -/* Message of error prompt shown when a user tries to perform an action without an internet connection. */ +/* Error message shown when a media upload fails because the user isn't connected to the Internet. + Message of error prompt shown when a user tries to perform an action without an internet connection. */ "The Internet connection appears to be offline." = "לא נמצא חיבור לאינטרנט."; /* Message informing the user that the site title can only be changed by an administrator user. */ @@ -7145,8 +7188,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Message shown when an image failed to load while trying to add it to the Media library. */ "The image could not be added to the Media Library." = "לא ניתן להוסיף את התמונה לספריית המדיה."; -/* Error message shown when a media upload fails because the user isn't connected to the internet. - Message of error prompt shown when a user tries to perform an action without an internet connection. */ +/* Message of error prompt shown when a user tries to perform an action without an internet connection. */ "The internet connection appears to be offline." = "החיבור לאינטרנט לא מחובר."; /* Message shown when an asset failed to load while trying to add it to the Media library. */ @@ -7182,6 +7224,12 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Description shown in alert to confirm skipping all quick start items */ "The quick start tour will guide you through building a basic site. Are you sure you want to skip? " = "הסיור להתחלה מהירה ידריך אותך כיצד לבנות אתר בסיסי. בחרת להמשיך - האם ההחלטה סופית? "; +/* A failure reason for when the request couldn't be serialized. */ +"The serialization of the request failed." = "The serialization of the request failed."; + +/* A failure reason for when the response couldn't be serialized. */ +"The serialization of the response failed." = "The serialization of the response failed."; + /* No comment provided by engineer. */ "The server returned an empty response. This usually means you need to increase the memory limit for your site." = "השרת החזיר תשובה ריקה. בדרך כלל הדבר אומר שצריך להגדיל את מגבלת הזיכרון לאתר."; @@ -7282,6 +7330,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Error message informing the user that there was a problem blocking posts from a site from their reader. */ "There was a problem blocking posts from the specified site." = "אירעה בעיה בעת חסימת רשומות מהאתר שצוין."; +/* A general error message shown to the user when there was an API communication failure. */ +"There was a problem communicating with the site." = "There was a problem communicating with the site."; + /* Message for the warning shown to the user when the app realizes there should be an auth token but there isn't one. */ "There was a problem connecting to WordPress.com. Please log in again." = "בעיה בהתחברות ל-WordPress.com. נא לנסות להתחבר שוב."; @@ -7450,12 +7501,18 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Message displayed when a threat is ignored successfully. */ "Threat ignored." = "התעלמת מהאיום."; +/* No comment provided by engineer. */ +"Three" = "Three"; + /* Thumbnail image size. Should be the same as in core WP. */ "Thumbnail" = "תמונה ממוזערת"; /* Message shown if a thumbnail preview of a media item unavailable. */ "Thumbnail unavailable." = "תמונה ממוזערת לא זמינה."; +/* No comment provided by engineer. */ +"Tiled gallery settings" = "Tiled gallery settings"; + /* Blog Writing Settings: Time Format Writing Time Format Settings Title */ "Time Format" = "תבנית זמן"; @@ -7600,13 +7657,16 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* No comment provided by engineer. */ "Transform block…" = "לשנות בלוק..."; -/* Accessibility label for trash buttons in nav bars +/* Accessibility label for trash button to delete items from the user's media library + Accessibility label for trash buttons in nav bars Button title for Trash comment state. - Trash button title Trashes a comment Trashes the comment */ "Trash" = "לאשפה"; +/* Accessibility hint for trash button to delete items from the user's media library */ +"Trash selected media" = "Trash selected media"; + /* Title of the trash page confirmation alert. */ "Trash this page?" = "האם להעביר את העמוד לפח?"; @@ -7687,6 +7747,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Title for the setting to edit the twitter username used when sharing to twitter. */ "Twitter Username" = "שם המשתמש בטוויטר"; +/* No comment provided by engineer. */ +"Two" = "Two"; + /* Type menu item in share extension. */ "Type" = "סוג"; @@ -7783,7 +7846,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Unable to play video" = "אין אפשרות לנגן את הווידאו"; /* No comment provided by engineer. */ -"Unable to read the WordPress site at that URL. Tap 'Need Help?' to view the FAQ." = "לא ניתן לקרוא את אתר WordPress בכתובת URL זו. יש להקיש על 'דרושה עזרה?' כדי להציג את השאלות הנפוצות."; +"Unable to read the WordPress site at that URL. Tap 'Need more help?' to view the FAQ." = "Unable to read the WordPress site at that URL. Tap 'Need more help?' to view the FAQ."; /* Title for the Jetpack Restore Failed message. */ "Unable to restore your site" = "לא ניתן לשחזר את האתר שלך"; @@ -7866,6 +7929,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Underline" = "קו תחתון"; /* Button in the notification presented in Reader when a post removed from saved for later + Button title. Reverts a comment moderation action. Button title. Reverts the previous notification operation Revert an operation The title of an 'undo' button. Tapping the button moves a trashed page out of the trash folder. @@ -8524,9 +8588,13 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Blog Writing Settings: Weeks starts on */ "Week starts on" = "היום הראשון בשבוע"; -/* Setting: indicates if the site reports its Weekly Roundup */ +/* Setting: indicates if the site reports its Weekly Roundup + Title of Weekly Roundup push notification */ "Weekly Roundup" = "סיכום שבועי"; +/* Title of Weekly Roundup push notification. %@ is a placeholder and will be replaced with the title of one of the user's websites. */ +"Weekly Roundup: %@" = "Weekly Roundup: %@"; + /* Title of Weeks stats filter. */ "Weeks" = "שבועות"; @@ -8830,12 +8898,12 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* A text for subtitle label on Login epilogue screen */ "You can switch sites at any time." = "אפשר להחליף בין אתרים בכל עת."; +/* Prompt shown on the Blogging Reminders Settings screen. */ +"You can update this any time" = "You can update this any time"; + /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "אפשר לעדכן את ההגדרה הזאת בכל עת דרך 'האתר שלי' > 'הגדרות אתר'"; -/* Prompt shown on the Blogging Reminders Settings screen. */ -"You can update this anytime" = "אפשר לעדכן את ההגדרה הזאת בכל עת"; - /* No comment provided by engineer. */ "You cannot use that email address to signup. We are having problems with them blocking some of our email. Please use another email provider." = "לא ניתן להשתמש בכתובת אימייל זו להרשמה. ספק זה חוסם חלק מהאימיילים שלנו. יש להשתמש בספק אימייל אחר."; @@ -9059,6 +9127,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* The default Jetpack view message */ "Your website credentials will not be stored and are used only for the purpose of installing Jetpack." = "פרטי הכניסה שלך לאתר לא יאוחסנו. אנחנו משתמשים בהם כדי להתקין את Jetpack בלבד."; +/* Prompt displayed as part of the stats Weekly Roundup push notification. */ +"Your weekly roundup is ready, tap here to see the details!" = "Your weekly roundup is ready, tap here to see the details!"; + /* Describes the expected behavior when the user disables in-app notifications in Reader Comments. */ "You’re following this conversation. You will receive an email and a notification whenever a new comment is made." = "השיחה הזאת נוספה למעקב שלך. נשלח לך אימייל והודעה כאשר תתפרסם תגובה חדשה."; diff --git a/WordPress/Resources/hr.lproj/Localizable.strings b/WordPress/Resources/hr.lproj/Localizable.strings index b691de104498..2e14d105ef24 100644 --- a/WordPress/Resources/hr.lproj/Localizable.strings +++ b/WordPress/Resources/hr.lproj/Localizable.strings @@ -468,7 +468,8 @@ translators: Block name. %s: The localized block name */ /* Label for the Activity Type filter button when there are more than 1 activity type selected */ "Activity Type (%1$d)" = "Activity Type (%1$d)"; -/* Remove asset from media picker list */ +/* Accessibility label for add button to add items to the user's media library + Remove asset from media picker list */ "Add" = "Dodaj"; /* Action for Media Picker to indicate selection of media. The argument in the string represents the number of elements (as numeric digits) selected */ @@ -564,6 +565,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Add menu item to children" = "Add menu item to children"; +/* Accessibility hint for add button to add items to the user's media library */ +"Add new media" = "Add new media"; + /* Screen reader text for Menus button that adds a new menu to a site. */ "Add new menu" = "Add new menu"; @@ -704,6 +708,12 @@ translators: Block name. %s: The localized block name */ /* Title of a row displayed on the debug screen used to indicate whether crash logs should be forced to send, even if they otherwise wouldn't */ "Always Send Crash Logs" = "Always Send Crash Logs"; +/* A failure reason for when an error HTTP status code was returned from the site, with the specific error code. */ +"An HTTP error code %i was returned." = "An HTTP error code %i was returned."; + +/* A failure reason for when an error HTTP status code was returned from the site. */ +"An HTTP error code was returned." = "An HTTP error code was returned."; + /* Error message when loading failed because there's no connection */ "An active internet connection is required" = "An active internet connection is required"; @@ -756,6 +766,9 @@ translators: Block name. %s: The localized block name */ /* Text displayed when a stat section failed to load. */ "An error occurred." = "An error occurred."; +/* A failure reason for when the error that occured wasn't able to be determined. */ +"An unknown error occurred." = "An unknown error occurred."; + /* Error message shown when a media upload fails for unknown reason and the user should try again. */ "An unknown error occurred. Please try again." = "An unknown error occurred. Please try again."; @@ -817,18 +830,9 @@ translators: Block name. %s: The localized block name */ /* Message prompting the user to confirm that they want to disconnect Jetpack from the site. */ "Are you sure you want to disconnect Jetpack from the site?" = "Are you sure you want to disconnect Jetpack from the site?"; -/* Message asking for confirmation before marking a comment as spam */ -"Are you sure you want to mark this comment as Spam?" = "Are you sure you want to mark this comment as Spam?"; - -/* Message asking for confirmation before marking a comment as trash */ -"Are you sure you want to mark this comment as Trash?" = "Jeste li sigurni da želite označiti ovaj komentar kao Smeće?"; - /* Message prompting the user to confirm that they want to permanently delete a group of media items. */ "Are you sure you want to permanently delete these items?" = "Are you sure you want to permanently delete these items?"; -/* Message asking for confirmation on comment deletion */ -"Are you sure you want to permanently delete this comment?" = "Jeste li sigurni da želite obrisati ovaj komentar?"; - /* Message prompting the user to confirm that they want to permanently delete a media item. Should match Calypso. */ "Are you sure you want to permanently delete this item?" = "Are you sure you want to permanently delete this item?"; @@ -1292,6 +1296,9 @@ translators: Block name. %s: The localized block name */ Main title */ "Change Password" = "Change Password"; +/* Title of button that takes user to the system Settings section for the app */ +"Change Settings" = "Change Settings"; + /* Title of an alert prompting the user that they are about to change the blog they are posting to. */ "Change Site" = "Change Site"; @@ -1587,6 +1594,9 @@ translators: Block name. %s: The localized block name */ My First Post */ "Comment on" = "Comment on"; +/* Message displayed when approving a comment succeeds. */ +"Comment set to approved." = "Comment set to approved."; + /* Message displayed when pending a comment succeeds. */ "Comment set to pending." = "Comment set to pending."; @@ -1677,8 +1687,7 @@ translators: Block name. %s: The localized block name */ /* Section title for the configure table section in the blog details screen */ "Configure" = "Konfiguriraj"; -/* Confirm - Verb. Title for Jetpack Restore confirm button. */ +/* Verb. Title for Jetpack Restore confirm button. */ "Confirm" = "Potvrdi"; /* Close Account alert title */ @@ -2117,7 +2126,8 @@ translators: Block name. %s: The localized block name */ /* Title for the app appearance setting for dark mode */ "Dark" = "Dark"; -/* Action title. Noun. Opens the user's WordPress.com dashboard in an external browser. */ +/* Action title. Noun. Opens the user's WordPress.com dashboard in an external browser. + Title for dashboard view on the My Site screen */ "Dashboard" = "Nadzorna ploča"; /* Title for a threat that includes the number of database rows affected */ @@ -2174,7 +2184,6 @@ translators: Block name. %s: The localized block name */ "Defaults for New Posts" = "Defaults for New Posts"; /* Delete - Delete button title Delete button title for the warning shown to the user when he refuses to re-login when the authToken is missing. Title for button that permanently deletes a media item (photo / video) Title for button that permanently deletes one or more media items (photos / videos) @@ -2533,7 +2542,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Each block has its own settings. To find them, tap on a block. Its settings will appear on the toolbar at the bottom of the screen." = "Each block has its own settings. To find them, tap on a block. Its settings will appear on the toolbar at the bottom of the screen."; -/* Edit the post. +/* Accessibility label for edit button to enable multi selection mode in the user's media library + Edit the post. Editing GIF alert default action button. Edits a Comment Edits the comment @@ -2740,6 +2750,9 @@ translators: Block name. %s: The localized block name */ /* Secondary message shown when there are no domains that match the user entered text. */ "Enter different words above and we'll look for an address that matches it." = "Enter different words above and we'll look for an address that matches it."; +/* Accessibility hint for edit button to enable multi selection mode in the user's media library */ +"Enter edit mode to enable multi select to delete" = "Enter edit mode to enable multi select to delete"; + /* (placeholder) Help enter WordPress password Placeholder of a field to type a password to protect the post. */ "Enter password" = "Unesite lozinku"; @@ -2790,9 +2803,6 @@ translators: Block name. %s: The localized block name */ /* There was an error activating a plugin, placeholder is the plugin name */ "Error activating %@." = "Error activating %@."; -/* Message shown when approving a Comment fails. */ -"Error approving comment" = "Pogreška pri priznavanju komentara"; - /* Message displayed when approving a comment fails. */ "Error approving comment." = "Error approving comment."; @@ -2802,9 +2812,6 @@ translators: Block name. %s: The localized block name */ /* There was an error deactivating a plugin, placeholder is the plugin name */ "Error deactivating %@." = "Error deactivating %@."; -/* Message shown when deleting a Comment fails. */ -"Error deleting comment" = "Pogreška pri brisanju komentara"; - /* Message displayed when deleting a comment fails. */ "Error deleting comment." = "Error deleting comment."; @@ -2832,9 +2839,6 @@ translators: Block name. %s: The localized block name */ /* Messaged displayed when fetching plugins failed. */ "Error loading plugins" = "Error loading plugins"; -/* Message shown when marking a Comment as spam fails. */ -"Error marking comment as spam" = "Error marking comment as spam"; - /* Message displayed when spamming a comment fails. */ "Error marking comment as spam." = "Error marking comment as spam."; @@ -2874,12 +2878,12 @@ translators: Block name. %s: The localized block name */ /* Generic message shown when there was an error trying to re-send email verification. */ "Error sending verification email. Check your connection and try again." = "Error sending verification email. Check your connection and try again."; +/* Message displayed when approving a comment fails. */ +"Error setting comment to approved." = "Error setting comment to approved."; + /* Message displayed when pending a comment fails. */ "Error setting comment to pending." = "Error setting comment to pending."; -/* Message shown when unapproving a Comment fails. */ -"Error unapproving comment" = "Error unapproving comment"; - /* There was an error updating a plugin, placeholder is the plugin name */ "Error updating %@." = "Error updating %@."; @@ -3199,6 +3203,9 @@ translators: Block name. %s: The localized block name */ /* Next web page */ "Forward" = "Forward"; +/* No comment provided by engineer. */ +"Four" = "Four"; + /* Browse free themes selection title */ "Free" = "Free"; @@ -3235,6 +3242,9 @@ translators: Block name. %s: The localized block name */ /* translators: accessibility text. %s: gallery caption. */ "Gallery caption. %s" = "Gallery caption. %s"; +/* No comment provided by engineer. */ +"Gallery style" = "Gallery style"; + /* An example tag used in the login prologue screens. */ "Gardening" = "Gardening"; @@ -3853,6 +3863,9 @@ translators: Block name. %s: The localized block name */ User's Last Name */ "Last Name" = "Last Name"; +/* Content of a weekly roundup push notification containing stats about the user's site. The % markers are placeholders and will be replaced by the appropriate number of views, comments, and likes. The numbers indicate the order, so they can be rearranged if necessary – 1 is views, 2 is comments, 3 is likes. */ +"Last week you had %1$d views, %2$d comments and %3$d likes." = "Last week you had %1$d views, %2$d comments and %3$d likes."; + /* Insights latest post summary header */ "Latest Post Summary" = "Latest Post Summary"; @@ -4442,6 +4455,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Navigates to customize the gradient" = "Navigates to customize the gradient"; +/* No comment provided by engineer. */ +"Navigates to layout selection screen" = "Navigates to layout selection screen"; + /* translators: %s: Select control button label e.g. Small translators: %s: Select control button label e.g. \"Button width\" */ "Navigates to select %s" = "Navigates to select %s"; @@ -4513,6 +4529,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Table view title for the quick start section. */ "Next Steps" = "Next Steps"; +/* Accessibility label for the button which shows the previous month in the monthly calendar view */ +"Next month" = "Next month"; + /* Accessibility label for the next notification button */ "Next notification" = "Next notification"; @@ -4611,6 +4630,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ Text shown when there is no data to display in the stats list view. */ "No data yet" = "No data yet"; +/* Accessibility label for no currently selected range. */ +"No date range selected" = "No date range selected"; + /* Title for the view when there aren't any fixed threats to display */ "No fixed threats" = "No fixed threats"; @@ -4886,12 +4908,18 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* A subtitle with more detailed info for the user when no WordPress.com sites could be found. */ "Once you create a WordPress.com site, you can reblog content that you like to your own site." = "Once you create a WordPress.com site, you can reblog content that you like to your own site."; +/* No comment provided by engineer. */ +"One" = "One"; + /* Subtitle displayed when the user has removed all Insights from display. */ "Only see the most relevant stats. Add insights to fit your needs." = "Only see the most relevant stats. Add insights to fit your needs."; /* No comment provided by engineer. */ "Only show excerpt" = "Only show excerpt"; +/* Message telling the user that they've only enabled limited photo library permissions for the app. */ +"Only the selected photos you've given access to are available." = "Only the selected photos you've given access to are available."; + /* An informal exclaimation that means `something went wrong`. Title for the view when there's an error loading Activity Log Title for the view when there's an error loading scan status @@ -5478,6 +5506,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Description of a Quick Start Tour */ "Preview your new site to see what your visitors will see." = "Preview your new site to see what your visitors will see."; +/* Accessibility label for the button which shows the previous month in the monthly calendar view */ +"Previous month" = "Previous month"; + /* Accessibility label for the previous notification button */ "Previous notification" = "Previous notification"; @@ -5775,7 +5806,7 @@ translators: %s: Select control button label e.g. \"Button width\" */ "Remove Site Icon" = "Remove Site Icon"; /* No comment provided by engineer. */ -"Remove as Featured Image " = "Remove as Featured Image "; +"Remove as Featured Image" = "Remove as Featured Image"; /* No comment provided by engineer. */ "Remove block" = "Remove block"; @@ -6235,6 +6266,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Register Domain - Domain contact information field placeholder for Country */ "Select Country" = "Select Country"; +/* Title of button that allows the user to select more photos to access within the app */ +"Select More" = "Select More"; + /* Blog Picker's Title */ "Select Site" = "Select Site"; @@ -6298,6 +6332,12 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Error message when user tries a no longer existent video media object. */ "Selected media is unavailable." = "Selected media is unavailable."; +/* Accessibility label for summary of currently single date. %1$@ is the date */ +"Selected range: %1$@ only" = "Selected range: %1$@ only"; + +/* Accessibility label for summary of currently selected range. %1$@ is the start date, %2$@ is the end date. */ +"Selected range: %1$@ to %2$@" = "Selected range: %1$@ to %2$@"; + /* translators: %s: Select font size option value e.g: \"Selected: Large\". translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Selected: %s" = "Selected: %s"; @@ -6358,7 +6398,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Set Parent" = "Set Parent"; /* No comment provided by engineer. */ -"Set as Featured Image " = "Set as Featured Image "; +"Set as Featured Image" = "Set as Featured Image"; /* Label for a button that sets the selected page as the site's Homepage */ "Set as Homepage" = "Set as Homepage"; @@ -6576,6 +6616,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Title for the Language Picker View */ "Site Language" = "Site Language"; +/* Title for the site menu view on the My Site screen */ +"Site Menu" = "Site Menu"; + /* Describes a site redirect domain */ "Site Redirect" = "Site Redirect"; @@ -6763,7 +6806,6 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Button title for Spam comment state. Marks comment as spam. - Spam Title of spam Comments filter. */ "Spam" = "Spam"; @@ -7106,7 +7148,8 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Description shown when a user logs in with Google but no matching WordPress.com account is found */ "The Google account \"%@\" doesn't match any account on WordPress.com" = "The Google account \"%@\" doesn't match any account on WordPress.com"; -/* Message of error prompt shown when a user tries to perform an action without an internet connection. */ +/* Error message shown when a media upload fails because the user isn't connected to the Internet. + Message of error prompt shown when a user tries to perform an action without an internet connection. */ "The Internet connection appears to be offline." = "Izgleda da Internet konekcija nije uključena."; /* Message informing the user that the site title can only be changed by an administrator user. */ @@ -7145,8 +7188,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Message shown when an image failed to load while trying to add it to the Media library. */ "The image could not be added to the Media Library." = "The image could not be added to the Media Library."; -/* Error message shown when a media upload fails because the user isn't connected to the internet. - Message of error prompt shown when a user tries to perform an action without an internet connection. */ +/* Message of error prompt shown when a user tries to perform an action without an internet connection. */ "The internet connection appears to be offline." = "Izgleda da nema internet konekcije."; /* Message shown when an asset failed to load while trying to add it to the Media library. */ @@ -7182,6 +7224,12 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Description shown in alert to confirm skipping all quick start items */ "The quick start tour will guide you through building a basic site. Are you sure you want to skip? " = "The quick start tour will guide you through building a basic site. Are you sure you want to skip? "; +/* A failure reason for when the request couldn't be serialized. */ +"The serialization of the request failed." = "The serialization of the request failed."; + +/* A failure reason for when the response couldn't be serialized. */ +"The serialization of the response failed." = "The serialization of the response failed."; + /* No comment provided by engineer. */ "The server returned an empty response. This usually means you need to increase the memory limit for your site." = "The server returned an empty response. This usually means you need to increase the memory limit for your site."; @@ -7282,6 +7330,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Error message informing the user that there was a problem blocking posts from a site from their reader. */ "There was a problem blocking posts from the specified site." = "There was a problem blocking posts from the specified site."; +/* A general error message shown to the user when there was an API communication failure. */ +"There was a problem communicating with the site." = "There was a problem communicating with the site."; + /* Message for the warning shown to the user when the app realizes there should be an auth token but there isn't one. */ "There was a problem connecting to WordPress.com. Please log in again." = "There was a problem connecting to WordPress.com. Please log in again."; @@ -7450,12 +7501,18 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Message displayed when a threat is ignored successfully. */ "Threat ignored." = "Threat ignored."; +/* No comment provided by engineer. */ +"Three" = "Three"; + /* Thumbnail image size. Should be the same as in core WP. */ "Thumbnail" = "Thumbnail"; /* Message shown if a thumbnail preview of a media item unavailable. */ "Thumbnail unavailable." = "Thumbnail unavailable."; +/* No comment provided by engineer. */ +"Tiled gallery settings" = "Tiled gallery settings"; + /* Blog Writing Settings: Time Format Writing Time Format Settings Title */ "Time Format" = "Time Format"; @@ -7600,13 +7657,16 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* No comment provided by engineer. */ "Transform block…" = "Transform block…"; -/* Accessibility label for trash buttons in nav bars +/* Accessibility label for trash button to delete items from the user's media library + Accessibility label for trash buttons in nav bars Button title for Trash comment state. - Trash button title Trashes a comment Trashes the comment */ "Trash" = "Trash"; +/* Accessibility hint for trash button to delete items from the user's media library */ +"Trash selected media" = "Trash selected media"; + /* Title of the trash page confirmation alert. */ "Trash this page?" = "Trash this page?"; @@ -7687,6 +7747,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Title for the setting to edit the twitter username used when sharing to twitter. */ "Twitter Username" = "Twitter Username"; +/* No comment provided by engineer. */ +"Two" = "Two"; + /* Type menu item in share extension. */ "Type" = "Type"; @@ -7783,7 +7846,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Unable to play video" = "Unable to play video"; /* No comment provided by engineer. */ -"Unable to read the WordPress site at that URL. Tap 'Need Help?' to view the FAQ." = "Unable to read the WordPress site at that URL. Tap 'Need Help?' to view the FAQ."; +"Unable to read the WordPress site at that URL. Tap 'Need more help?' to view the FAQ." = "Unable to read the WordPress site at that URL. Tap 'Need more help?' to view the FAQ."; /* Title for the Jetpack Restore Failed message. */ "Unable to restore your site" = "Unable to restore your site"; @@ -7866,6 +7929,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Underline" = "Underline"; /* Button in the notification presented in Reader when a post removed from saved for later + Button title. Reverts a comment moderation action. Button title. Reverts the previous notification operation Revert an operation The title of an 'undo' button. Tapping the button moves a trashed page out of the trash folder. @@ -8524,9 +8588,13 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Blog Writing Settings: Weeks starts on */ "Week starts on" = "Week starts on"; -/* Setting: indicates if the site reports its Weekly Roundup */ +/* Setting: indicates if the site reports its Weekly Roundup + Title of Weekly Roundup push notification */ "Weekly Roundup" = "Weekly Roundup"; +/* Title of Weekly Roundup push notification. %@ is a placeholder and will be replaced with the title of one of the user's websites. */ +"Weekly Roundup: %@" = "Weekly Roundup: %@"; + /* Title of Weeks stats filter. */ "Weeks" = "Tjedni"; @@ -8830,12 +8898,12 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* A text for subtitle label on Login epilogue screen */ "You can switch sites at any time." = "You can switch sites at any time."; +/* Prompt shown on the Blogging Reminders Settings screen. */ +"You can update this any time" = "You can update this any time"; + /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "Ovo možete ažurirati bilo kada preko Moje sjedište > Postavke sjedišta"; -/* Prompt shown on the Blogging Reminders Settings screen. */ -"You can update this anytime" = "Ovo možete ažurirati bilo kada"; - /* No comment provided by engineer. */ "You cannot use that email address to signup. We are having problems with them blocking some of our email. Please use another email provider." = "You cannot use that email address to signup. We are having problems with them blocking some of our email. Please use another email provider."; @@ -9059,6 +9127,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* The default Jetpack view message */ "Your website credentials will not be stored and are used only for the purpose of installing Jetpack." = "Your website credentials will not be stored and are used only for the purpose of installing Jetpack."; +/* Prompt displayed as part of the stats Weekly Roundup push notification. */ +"Your weekly roundup is ready, tap here to see the details!" = "Your weekly roundup is ready, tap here to see the details!"; + /* Describes the expected behavior when the user disables in-app notifications in Reader Comments. */ "You’re following this conversation. You will receive an email and a notification whenever a new comment is made." = "You’re following this conversation. You will receive an email and a notification whenever a new comment is made."; diff --git a/WordPress/Resources/hu.lproj/Localizable.strings b/WordPress/Resources/hu.lproj/Localizable.strings index 80ce4c338f56..0a5d38509a3c 100644 --- a/WordPress/Resources/hu.lproj/Localizable.strings +++ b/WordPress/Resources/hu.lproj/Localizable.strings @@ -468,7 +468,8 @@ translators: Block name. %s: The localized block name */ /* Label for the Activity Type filter button when there are more than 1 activity type selected */ "Activity Type (%1$d)" = "Activity Type (%1$d)"; -/* Remove asset from media picker list */ +/* Accessibility label for add button to add items to the user's media library + Remove asset from media picker list */ "Add" = "Hozzáadás"; /* Action for Media Picker to indicate selection of media. The argument in the string represents the number of elements (as numeric digits) selected */ @@ -564,6 +565,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Add menu item to children" = "Add menu item to children"; +/* Accessibility hint for add button to add items to the user's media library */ +"Add new media" = "Add new media"; + /* Screen reader text for Menus button that adds a new menu to a site. */ "Add new menu" = "Add new menu"; @@ -704,6 +708,12 @@ translators: Block name. %s: The localized block name */ /* Title of a row displayed on the debug screen used to indicate whether crash logs should be forced to send, even if they otherwise wouldn't */ "Always Send Crash Logs" = "Always Send Crash Logs"; +/* A failure reason for when an error HTTP status code was returned from the site, with the specific error code. */ +"An HTTP error code %i was returned." = "An HTTP error code %i was returned."; + +/* A failure reason for when an error HTTP status code was returned from the site. */ +"An HTTP error code was returned." = "An HTTP error code was returned."; + /* Error message when loading failed because there's no connection */ "An active internet connection is required" = "An active internet connection is required"; @@ -756,6 +766,9 @@ translators: Block name. %s: The localized block name */ /* Text displayed when a stat section failed to load. */ "An error occurred." = "An error occurred."; +/* A failure reason for when the error that occured wasn't able to be determined. */ +"An unknown error occurred." = "An unknown error occurred."; + /* Error message shown when a media upload fails for unknown reason and the user should try again. */ "An unknown error occurred. Please try again." = "An unknown error occurred. Please try again."; @@ -817,18 +830,9 @@ translators: Block name. %s: The localized block name */ /* Message prompting the user to confirm that they want to disconnect Jetpack from the site. */ "Are you sure you want to disconnect Jetpack from the site?" = "Are you sure you want to disconnect Jetpack from the site?"; -/* Message asking for confirmation before marking a comment as spam */ -"Are you sure you want to mark this comment as Spam?" = "Are you sure you want to mark this comment as Spam?"; - -/* Message asking for confirmation before marking a comment as trash */ -"Are you sure you want to mark this comment as Trash?" = "Are you sure you want to mark this comment as Trash?"; - /* Message prompting the user to confirm that they want to permanently delete a group of media items. */ "Are you sure you want to permanently delete these items?" = "Are you sure you want to permanently delete these items?"; -/* Message asking for confirmation on comment deletion */ -"Are you sure you want to permanently delete this comment?" = "Are you sure you want to permanently delete this comment?"; - /* Message prompting the user to confirm that they want to permanently delete a media item. Should match Calypso. */ "Are you sure you want to permanently delete this item?" = "Are you sure you want to permanently delete this item?"; @@ -1292,6 +1296,9 @@ translators: Block name. %s: The localized block name */ Main title */ "Change Password" = "Change Password"; +/* Title of button that takes user to the system Settings section for the app */ +"Change Settings" = "Change Settings"; + /* Title of an alert prompting the user that they are about to change the blog they are posting to. */ "Change Site" = "Change Site"; @@ -1587,6 +1594,9 @@ translators: Block name. %s: The localized block name */ My First Post */ "Comment on" = "Comment on"; +/* Message displayed when approving a comment succeeds. */ +"Comment set to approved." = "Comment set to approved."; + /* Message displayed when pending a comment succeeds. */ "Comment set to pending." = "Comment set to pending."; @@ -1677,8 +1687,7 @@ translators: Block name. %s: The localized block name */ /* Section title for the configure table section in the blog details screen */ "Configure" = "Beállítás"; -/* Confirm - Verb. Title for Jetpack Restore confirm button. */ +/* Verb. Title for Jetpack Restore confirm button. */ "Confirm" = "Megerősítés"; /* Close Account alert title */ @@ -2117,7 +2126,8 @@ translators: Block name. %s: The localized block name */ /* Title for the app appearance setting for dark mode */ "Dark" = "Dark"; -/* Action title. Noun. Opens the user's WordPress.com dashboard in an external browser. */ +/* Action title. Noun. Opens the user's WordPress.com dashboard in an external browser. + Title for dashboard view on the My Site screen */ "Dashboard" = "Vezérlőpult"; /* Title for a threat that includes the number of database rows affected */ @@ -2174,7 +2184,6 @@ translators: Block name. %s: The localized block name */ "Defaults for New Posts" = "Defaults for New Posts"; /* Delete - Delete button title Delete button title for the warning shown to the user when he refuses to re-login when the authToken is missing. Title for button that permanently deletes a media item (photo / video) Title for button that permanently deletes one or more media items (photos / videos) @@ -2533,7 +2542,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Each block has its own settings. To find them, tap on a block. Its settings will appear on the toolbar at the bottom of the screen." = "Each block has its own settings. To find them, tap on a block. Its settings will appear on the toolbar at the bottom of the screen."; -/* Edit the post. +/* Accessibility label for edit button to enable multi selection mode in the user's media library + Edit the post. Editing GIF alert default action button. Edits a Comment Edits the comment @@ -2740,6 +2750,9 @@ translators: Block name. %s: The localized block name */ /* Secondary message shown when there are no domains that match the user entered text. */ "Enter different words above and we'll look for an address that matches it." = "Enter different words above and we'll look for an address that matches it."; +/* Accessibility hint for edit button to enable multi selection mode in the user's media library */ +"Enter edit mode to enable multi select to delete" = "Enter edit mode to enable multi select to delete"; + /* (placeholder) Help enter WordPress password Placeholder of a field to type a password to protect the post. */ "Enter password" = "Jelszó megadása"; @@ -2790,9 +2803,6 @@ translators: Block name. %s: The localized block name */ /* There was an error activating a plugin, placeholder is the plugin name */ "Error activating %@." = "Error activating %@."; -/* Message shown when approving a Comment fails. */ -"Error approving comment" = "Error approving comment"; - /* Message displayed when approving a comment fails. */ "Error approving comment." = "Error approving comment."; @@ -2802,9 +2812,6 @@ translators: Block name. %s: The localized block name */ /* There was an error deactivating a plugin, placeholder is the plugin name */ "Error deactivating %@." = "Error deactivating %@."; -/* Message shown when deleting a Comment fails. */ -"Error deleting comment" = "Error deleting comment"; - /* Message displayed when deleting a comment fails. */ "Error deleting comment." = "Error deleting comment."; @@ -2832,9 +2839,6 @@ translators: Block name. %s: The localized block name */ /* Messaged displayed when fetching plugins failed. */ "Error loading plugins" = "Error loading plugins"; -/* Message shown when marking a Comment as spam fails. */ -"Error marking comment as spam" = "Error marking comment as spam"; - /* Message displayed when spamming a comment fails. */ "Error marking comment as spam." = "Error marking comment as spam."; @@ -2874,12 +2878,12 @@ translators: Block name. %s: The localized block name */ /* Generic message shown when there was an error trying to re-send email verification. */ "Error sending verification email. Check your connection and try again." = "Error sending verification email. Check your connection and try again."; +/* Message displayed when approving a comment fails. */ +"Error setting comment to approved." = "Error setting comment to approved."; + /* Message displayed when pending a comment fails. */ "Error setting comment to pending." = "Error setting comment to pending."; -/* Message shown when unapproving a Comment fails. */ -"Error unapproving comment" = "Error unapproving comment"; - /* There was an error updating a plugin, placeholder is the plugin name */ "Error updating %@." = "Error updating %@."; @@ -3199,6 +3203,9 @@ translators: Block name. %s: The localized block name */ /* Next web page */ "Forward" = "Forward"; +/* No comment provided by engineer. */ +"Four" = "Four"; + /* Browse free themes selection title */ "Free" = "Free"; @@ -3235,6 +3242,9 @@ translators: Block name. %s: The localized block name */ /* translators: accessibility text. %s: gallery caption. */ "Gallery caption. %s" = "Gallery caption. %s"; +/* No comment provided by engineer. */ +"Gallery style" = "Gallery style"; + /* An example tag used in the login prologue screens. */ "Gardening" = "Gardening"; @@ -3853,6 +3863,9 @@ translators: Block name. %s: The localized block name */ User's Last Name */ "Last Name" = "Last Name"; +/* Content of a weekly roundup push notification containing stats about the user's site. The % markers are placeholders and will be replaced by the appropriate number of views, comments, and likes. The numbers indicate the order, so they can be rearranged if necessary – 1 is views, 2 is comments, 3 is likes. */ +"Last week you had %1$d views, %2$d comments and %3$d likes." = "Last week you had %1$d views, %2$d comments and %3$d likes."; + /* Insights latest post summary header */ "Latest Post Summary" = "Latest Post Summary"; @@ -4442,6 +4455,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Navigates to customize the gradient" = "Navigates to customize the gradient"; +/* No comment provided by engineer. */ +"Navigates to layout selection screen" = "Navigates to layout selection screen"; + /* translators: %s: Select control button label e.g. Small translators: %s: Select control button label e.g. \"Button width\" */ "Navigates to select %s" = "Navigates to select %s"; @@ -4513,6 +4529,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Table view title for the quick start section. */ "Next Steps" = "Next Steps"; +/* Accessibility label for the button which shows the previous month in the monthly calendar view */ +"Next month" = "Next month"; + /* Accessibility label for the next notification button */ "Next notification" = "Next notification"; @@ -4611,6 +4630,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ Text shown when there is no data to display in the stats list view. */ "No data yet" = "No data yet"; +/* Accessibility label for no currently selected range. */ +"No date range selected" = "No date range selected"; + /* Title for the view when there aren't any fixed threats to display */ "No fixed threats" = "No fixed threats"; @@ -4886,12 +4908,18 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* A subtitle with more detailed info for the user when no WordPress.com sites could be found. */ "Once you create a WordPress.com site, you can reblog content that you like to your own site." = "Once you create a WordPress.com site, you can reblog content that you like to your own site."; +/* No comment provided by engineer. */ +"One" = "One"; + /* Subtitle displayed when the user has removed all Insights from display. */ "Only see the most relevant stats. Add insights to fit your needs." = "Only see the most relevant stats. Add insights to fit your needs."; /* No comment provided by engineer. */ "Only show excerpt" = "Only show excerpt"; +/* Message telling the user that they've only enabled limited photo library permissions for the app. */ +"Only the selected photos you've given access to are available." = "Only the selected photos you've given access to are available."; + /* An informal exclaimation that means `something went wrong`. Title for the view when there's an error loading Activity Log Title for the view when there's an error loading scan status @@ -5478,6 +5506,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Description of a Quick Start Tour */ "Preview your new site to see what your visitors will see." = "Preview your new site to see what your visitors will see."; +/* Accessibility label for the button which shows the previous month in the monthly calendar view */ +"Previous month" = "Previous month"; + /* Accessibility label for the previous notification button */ "Previous notification" = "Previous notification"; @@ -5775,7 +5806,7 @@ translators: %s: Select control button label e.g. \"Button width\" */ "Remove Site Icon" = "Remove Site Icon"; /* No comment provided by engineer. */ -"Remove as Featured Image " = "Remove as Featured Image "; +"Remove as Featured Image" = "Remove as Featured Image"; /* No comment provided by engineer. */ "Remove block" = "Remove block"; @@ -6235,6 +6266,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Register Domain - Domain contact information field placeholder for Country */ "Select Country" = "Select Country"; +/* Title of button that allows the user to select more photos to access within the app */ +"Select More" = "Select More"; + /* Blog Picker's Title */ "Select Site" = "Select Site"; @@ -6298,6 +6332,12 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Error message when user tries a no longer existent video media object. */ "Selected media is unavailable." = "Selected media is unavailable."; +/* Accessibility label for summary of currently single date. %1$@ is the date */ +"Selected range: %1$@ only" = "Selected range: %1$@ only"; + +/* Accessibility label for summary of currently selected range. %1$@ is the start date, %2$@ is the end date. */ +"Selected range: %1$@ to %2$@" = "Selected range: %1$@ to %2$@"; + /* translators: %s: Select font size option value e.g: \"Selected: Large\". translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Selected: %s" = "Selected: %s"; @@ -6358,7 +6398,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Set Parent" = "Set Parent"; /* No comment provided by engineer. */ -"Set as Featured Image " = "Set as Featured Image "; +"Set as Featured Image" = "Set as Featured Image"; /* Label for a button that sets the selected page as the site's Homepage */ "Set as Homepage" = "Set as Homepage"; @@ -6576,6 +6616,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Title for the Language Picker View */ "Site Language" = "Honlap nyelve"; +/* Title for the site menu view on the My Site screen */ +"Site Menu" = "Site Menu"; + /* Describes a site redirect domain */ "Site Redirect" = "Site Redirect"; @@ -6763,7 +6806,6 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Button title for Spam comment state. Marks comment as spam. - Spam Title of spam Comments filter. */ "Spam" = "Spam"; @@ -7106,7 +7148,8 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Description shown when a user logs in with Google but no matching WordPress.com account is found */ "The Google account \"%@\" doesn't match any account on WordPress.com" = "The Google account \"%@\" doesn't match any account on WordPress.com"; -/* Message of error prompt shown when a user tries to perform an action without an internet connection. */ +/* Error message shown when a media upload fails because the user isn't connected to the Internet. + Message of error prompt shown when a user tries to perform an action without an internet connection. */ "The Internet connection appears to be offline." = "Úgy tűnik, hogy nincs internetkapcsolat."; /* Message informing the user that the site title can only be changed by an administrator user. */ @@ -7145,8 +7188,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Message shown when an image failed to load while trying to add it to the Media library. */ "The image could not be added to the Media Library." = "The image could not be added to the Media Library."; -/* Error message shown when a media upload fails because the user isn't connected to the internet. - Message of error prompt shown when a user tries to perform an action without an internet connection. */ +/* Message of error prompt shown when a user tries to perform an action without an internet connection. */ "The internet connection appears to be offline." = "Az internet kapcsolat megszakadt."; /* Message shown when an asset failed to load while trying to add it to the Media library. */ @@ -7182,6 +7224,12 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Description shown in alert to confirm skipping all quick start items */ "The quick start tour will guide you through building a basic site. Are you sure you want to skip? " = "The quick start tour will guide you through building a basic site. Are you sure you want to skip? "; +/* A failure reason for when the request couldn't be serialized. */ +"The serialization of the request failed." = "The serialization of the request failed."; + +/* A failure reason for when the response couldn't be serialized. */ +"The serialization of the response failed." = "The serialization of the response failed."; + /* No comment provided by engineer. */ "The server returned an empty response. This usually means you need to increase the memory limit for your site." = "The server returned an empty response. This usually means you need to increase the memory limit for your site."; @@ -7282,6 +7330,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Error message informing the user that there was a problem blocking posts from a site from their reader. */ "There was a problem blocking posts from the specified site." = "There was a problem blocking posts from the specified site."; +/* A general error message shown to the user when there was an API communication failure. */ +"There was a problem communicating with the site." = "There was a problem communicating with the site."; + /* Message for the warning shown to the user when the app realizes there should be an auth token but there isn't one. */ "There was a problem connecting to WordPress.com. Please log in again." = "There was a problem connecting to WordPress.com. Please log in again."; @@ -7450,12 +7501,18 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Message displayed when a threat is ignored successfully. */ "Threat ignored." = "Threat ignored."; +/* No comment provided by engineer. */ +"Three" = "Three"; + /* Thumbnail image size. Should be the same as in core WP. */ "Thumbnail" = "Thumbnail"; /* Message shown if a thumbnail preview of a media item unavailable. */ "Thumbnail unavailable." = "Thumbnail unavailable."; +/* No comment provided by engineer. */ +"Tiled gallery settings" = "Tiled gallery settings"; + /* Blog Writing Settings: Time Format Writing Time Format Settings Title */ "Time Format" = "Time Format"; @@ -7600,13 +7657,16 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* No comment provided by engineer. */ "Transform block…" = "Transform block…"; -/* Accessibility label for trash buttons in nav bars +/* Accessibility label for trash button to delete items from the user's media library + Accessibility label for trash buttons in nav bars Button title for Trash comment state. - Trash button title Trashes a comment Trashes the comment */ "Trash" = "Trash"; +/* Accessibility hint for trash button to delete items from the user's media library */ +"Trash selected media" = "Trash selected media"; + /* Title of the trash page confirmation alert. */ "Trash this page?" = "Trash this page?"; @@ -7687,6 +7747,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Title for the setting to edit the twitter username used when sharing to twitter. */ "Twitter Username" = "Twitter Username"; +/* No comment provided by engineer. */ +"Two" = "Two"; + /* Type menu item in share extension. */ "Type" = "Type"; @@ -7783,7 +7846,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Unable to play video" = "Unable to play video"; /* No comment provided by engineer. */ -"Unable to read the WordPress site at that URL. Tap 'Need Help?' to view the FAQ." = "Unable to read the WordPress site at that URL. Tap 'Need Help?' to view the FAQ."; +"Unable to read the WordPress site at that URL. Tap 'Need more help?' to view the FAQ." = "Unable to read the WordPress site at that URL. Tap 'Need more help?' to view the FAQ."; /* Title for the Jetpack Restore Failed message. */ "Unable to restore your site" = "Unable to restore your site"; @@ -7866,6 +7929,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Underline" = "Underline"; /* Button in the notification presented in Reader when a post removed from saved for later + Button title. Reverts a comment moderation action. Button title. Reverts the previous notification operation Revert an operation The title of an 'undo' button. Tapping the button moves a trashed page out of the trash folder. @@ -8524,9 +8588,13 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Blog Writing Settings: Weeks starts on */ "Week starts on" = "Week starts on"; -/* Setting: indicates if the site reports its Weekly Roundup */ +/* Setting: indicates if the site reports its Weekly Roundup + Title of Weekly Roundup push notification */ "Weekly Roundup" = "Weekly Roundup"; +/* Title of Weekly Roundup push notification. %@ is a placeholder and will be replaced with the title of one of the user's websites. */ +"Weekly Roundup: %@" = "Weekly Roundup: %@"; + /* Title of Weeks stats filter. */ "Weeks" = "Weeks"; @@ -8830,12 +8898,12 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* A text for subtitle label on Login epilogue screen */ "You can switch sites at any time." = "You can switch sites at any time."; +/* Prompt shown on the Blogging Reminders Settings screen. */ +"You can update this any time" = "You can update this any time"; + /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "You can update this any time via My Site > Site Settings"; -/* Prompt shown on the Blogging Reminders Settings screen. */ -"You can update this anytime" = "You can update this anytime"; - /* No comment provided by engineer. */ "You cannot use that email address to signup. We are having problems with them blocking some of our email. Please use another email provider." = "Ez az e-mail cím nem használható. Ugyanis, ennél a szolgáltatónál fennakadnak az általunk külödött levelek. Válasszunk másik e-mail szolgáltatót."; @@ -9059,6 +9127,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* The default Jetpack view message */ "Your website credentials will not be stored and are used only for the purpose of installing Jetpack." = "Your website credentials will not be stored and are used only for the purpose of installing Jetpack."; +/* Prompt displayed as part of the stats Weekly Roundup push notification. */ +"Your weekly roundup is ready, tap here to see the details!" = "Your weekly roundup is ready, tap here to see the details!"; + /* Describes the expected behavior when the user disables in-app notifications in Reader Comments. */ "You’re following this conversation. You will receive an email and a notification whenever a new comment is made." = "You’re following this conversation. You will receive an email and a notification whenever a new comment is made."; diff --git a/WordPress/Resources/id.lproj/Localizable.strings b/WordPress/Resources/id.lproj/Localizable.strings index bda92aeab052..5f0d648d98a0 100644 --- a/WordPress/Resources/id.lproj/Localizable.strings +++ b/WordPress/Resources/id.lproj/Localizable.strings @@ -468,7 +468,8 @@ translators: Block name. %s: The localized block name */ /* Label for the Activity Type filter button when there are more than 1 activity type selected */ "Activity Type (%1$d)" = "Jenis Aktivitas (%1$d)"; -/* Remove asset from media picker list */ +/* Accessibility label for add button to add items to the user's media library + Remove asset from media picker list */ "Add" = "Tambah"; /* Action for Media Picker to indicate selection of media. The argument in the string represents the number of elements (as numeric digits) selected */ @@ -564,6 +565,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Add menu item to children" = "Tambahkan item menu ke turunan"; +/* Accessibility hint for add button to add items to the user's media library */ +"Add new media" = "Add new media"; + /* Screen reader text for Menus button that adds a new menu to a site. */ "Add new menu" = "Tambahkan menu baru"; @@ -704,6 +708,12 @@ translators: Block name. %s: The localized block name */ /* Title of a row displayed on the debug screen used to indicate whether crash logs should be forced to send, even if they otherwise wouldn't */ "Always Send Crash Logs" = "Selalu Kirim Log Crash"; +/* A failure reason for when an error HTTP status code was returned from the site, with the specific error code. */ +"An HTTP error code %i was returned." = "An HTTP error code %i was returned."; + +/* A failure reason for when an error HTTP status code was returned from the site. */ +"An HTTP error code was returned." = "An HTTP error code was returned."; + /* Error message when loading failed because there's no connection */ "An active internet connection is required" = "Diperlukan koneksi internet yang aktif"; @@ -756,6 +766,9 @@ translators: Block name. %s: The localized block name */ /* Text displayed when a stat section failed to load. */ "An error occurred." = "Terjadi error."; +/* A failure reason for when the error that occured wasn't able to be determined. */ +"An unknown error occurred." = "An unknown error occurred."; + /* Error message shown when a media upload fails for unknown reason and the user should try again. */ "An unknown error occurred. Please try again." = "Terjadi error yang tidak diketahui. Silakan coba lagi."; @@ -817,18 +830,9 @@ translators: Block name. %s: The localized block name */ /* Message prompting the user to confirm that they want to disconnect Jetpack from the site. */ "Are you sure you want to disconnect Jetpack from the site?" = "Apakah Anda yakin ingin memutuskan sambungan Jetpack dari situs?"; -/* Message asking for confirmation before marking a comment as spam */ -"Are you sure you want to mark this comment as Spam?" = "Apakah Anda yakin ingin menandai komentar ini sebagai Spam?"; - -/* Message asking for confirmation before marking a comment as trash */ -"Are you sure you want to mark this comment as Trash?" = "Anda yakin ingin menandai komentar ini sebagai Sampah?"; - /* Message prompting the user to confirm that they want to permanently delete a group of media items. */ "Are you sure you want to permanently delete these items?" = "Anda yakin ingin menghapus item ini secara permanen?"; -/* Message asking for confirmation on comment deletion */ -"Are you sure you want to permanently delete this comment?" = "Anda yakin ingin menghapus komentar ini secara permanen?"; - /* Message prompting the user to confirm that they want to permanently delete a media item. Should match Calypso. */ "Are you sure you want to permanently delete this item?" = "Anda yakin ingin menghapus item ini secara permanen?"; @@ -1292,6 +1296,9 @@ translators: Block name. %s: The localized block name */ Main title */ "Change Password" = "Ganti Kata Sandi"; +/* Title of button that takes user to the system Settings section for the app */ +"Change Settings" = "Change Settings"; + /* Title of an alert prompting the user that they are about to change the blog they are posting to. */ "Change Site" = "Ganti Situs"; @@ -1587,6 +1594,9 @@ translators: Block name. %s: The localized block name */ My First Post */ "Comment on" = "Komentar di"; +/* Message displayed when approving a comment succeeds. */ +"Comment set to approved." = "Comment set to approved."; + /* Message displayed when pending a comment succeeds. */ "Comment set to pending." = "Komentar diatur menjadi tertunda."; @@ -1677,8 +1687,7 @@ translators: Block name. %s: The localized block name */ /* Section title for the configure table section in the blog details screen */ "Configure" = "Konfigurasikan"; -/* Confirm - Verb. Title for Jetpack Restore confirm button. */ +/* Verb. Title for Jetpack Restore confirm button. */ "Confirm" = "Konfirmasi"; /* Close Account alert title */ @@ -2117,7 +2126,8 @@ translators: Block name. %s: The localized block name */ /* Title for the app appearance setting for dark mode */ "Dark" = "Gelap"; -/* Action title. Noun. Opens the user's WordPress.com dashboard in an external browser. */ +/* Action title. Noun. Opens the user's WordPress.com dashboard in an external browser. + Title for dashboard view on the My Site screen */ "Dashboard" = "Dasbor"; /* Title for a threat that includes the number of database rows affected */ @@ -2174,7 +2184,6 @@ translators: Block name. %s: The localized block name */ "Defaults for New Posts" = "Default untuk Pos Baru"; /* Delete - Delete button title Delete button title for the warning shown to the user when he refuses to re-login when the authToken is missing. Title for button that permanently deletes a media item (photo / video) Title for button that permanently deletes one or more media items (photos / videos) @@ -2533,7 +2542,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Each block has its own settings. To find them, tap on a block. Its settings will appear on the toolbar at the bottom of the screen." = "Setiap blok memiliki pengaturannya sendiri. Untuk menemukannya, ketuk pada blok. Pengaturannya akan muncul di toolbar di bagian bawah layar."; -/* Edit the post. +/* Accessibility label for edit button to enable multi selection mode in the user's media library + Edit the post. Editing GIF alert default action button. Edits a Comment Edits the comment @@ -2740,6 +2750,9 @@ translators: Block name. %s: The localized block name */ /* Secondary message shown when there are no domains that match the user entered text. */ "Enter different words above and we'll look for an address that matches it." = "Masukkan kata yang berbeda dengan yang di atas dan kami akan mencari alamat yang cocok dengan kata tersebut."; +/* Accessibility hint for edit button to enable multi selection mode in the user's media library */ +"Enter edit mode to enable multi select to delete" = "Enter edit mode to enable multi select to delete"; + /* (placeholder) Help enter WordPress password Placeholder of a field to type a password to protect the post. */ "Enter password" = "Masukkan kata sandi"; @@ -2790,9 +2803,6 @@ translators: Block name. %s: The localized block name */ /* There was an error activating a plugin, placeholder is the plugin name */ "Error activating %@." = "Terjadi error saat mengaktifkan %@."; -/* Message shown when approving a Comment fails. */ -"Error approving comment" = "Error menyetujui komentar"; - /* Message displayed when approving a comment fails. */ "Error approving comment." = "Error menyetujui komentar."; @@ -2802,9 +2812,6 @@ translators: Block name. %s: The localized block name */ /* There was an error deactivating a plugin, placeholder is the plugin name */ "Error deactivating %@." = "Terjadi error saat menonaktifkan %@."; -/* Message shown when deleting a Comment fails. */ -"Error deleting comment" = "Error menghapus komentar"; - /* Message displayed when deleting a comment fails. */ "Error deleting comment." = "Error menghapus komentar."; @@ -2832,9 +2839,6 @@ translators: Block name. %s: The localized block name */ /* Messaged displayed when fetching plugins failed. */ "Error loading plugins" = "Terjadi error saat memuat plugin"; -/* Message shown when marking a Comment as spam fails. */ -"Error marking comment as spam" = "Error menandai komentar sebagai spam"; - /* Message displayed when spamming a comment fails. */ "Error marking comment as spam." = "Error menandai komentar sebagai spam."; @@ -2874,12 +2878,12 @@ translators: Block name. %s: The localized block name */ /* Generic message shown when there was an error trying to re-send email verification. */ "Error sending verification email. Check your connection and try again." = "Terjadi error saat mengirim email verifikasi. Periksa sambungan Anda dan coba lagi."; +/* Message displayed when approving a comment fails. */ +"Error setting comment to approved." = "Error setting comment to approved."; + /* Message displayed when pending a comment fails. */ "Error setting comment to pending." = "Error mengatur komentar tertunda."; -/* Message shown when unapproving a Comment fails. */ -"Error unapproving comment" = "Error menolak komentar"; - /* There was an error updating a plugin, placeholder is the plugin name */ "Error updating %@." = "Error saat memperbarui %@."; @@ -3199,6 +3203,9 @@ translators: Block name. %s: The localized block name */ /* Next web page */ "Forward" = "Teruskan"; +/* No comment provided by engineer. */ +"Four" = "Four"; + /* Browse free themes selection title */ "Free" = "Gratis"; @@ -3235,6 +3242,9 @@ translators: Block name. %s: The localized block name */ /* translators: accessibility text. %s: gallery caption. */ "Gallery caption. %s" = "Keterangan galeri. %s"; +/* No comment provided by engineer. */ +"Gallery style" = "Gallery style"; + /* An example tag used in the login prologue screens. */ "Gardening" = "Berkebun"; @@ -3853,6 +3863,9 @@ translators: Block name. %s: The localized block name */ User's Last Name */ "Last Name" = "Nama Belakang"; +/* Content of a weekly roundup push notification containing stats about the user's site. The % markers are placeholders and will be replaced by the appropriate number of views, comments, and likes. The numbers indicate the order, so they can be rearranged if necessary – 1 is views, 2 is comments, 3 is likes. */ +"Last week you had %1$d views, %2$d comments and %3$d likes." = "Last week you had %1$d views, %2$d comments and %3$d likes."; + /* Insights latest post summary header */ "Latest Post Summary" = "Ringkasan Pos Terbaru"; @@ -4442,6 +4455,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Navigates to customize the gradient" = "Navigasikan untuk menyesuaikan gradasi"; +/* No comment provided by engineer. */ +"Navigates to layout selection screen" = "Navigates to layout selection screen"; + /* translators: %s: Select control button label e.g. Small translators: %s: Select control button label e.g. \"Button width\" */ "Navigates to select %s" = "Navigasikan untuk memilih %s"; @@ -4513,6 +4529,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Table view title for the quick start section. */ "Next Steps" = "Langkah Berikutnya"; +/* Accessibility label for the button which shows the previous month in the monthly calendar view */ +"Next month" = "Next month"; + /* Accessibility label for the next notification button */ "Next notification" = "Pemberitahuan selanjutnya"; @@ -4611,6 +4630,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ Text shown when there is no data to display in the stats list view. */ "No data yet" = "Belum ada data"; +/* Accessibility label for no currently selected range. */ +"No date range selected" = "No date range selected"; + /* Title for the view when there aren't any fixed threats to display */ "No fixed threats" = "Tidak ada ancaman yang telah diperbaiki"; @@ -4886,12 +4908,18 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* A subtitle with more detailed info for the user when no WordPress.com sites could be found. */ "Once you create a WordPress.com site, you can reblog content that you like to your own site." = "Setelah membuat situs WordPress.com, Anda dapat me-reblog konten yang disukai ke situs Anda sendiri."; +/* No comment provided by engineer. */ +"One" = "One"; + /* Subtitle displayed when the user has removed all Insights from display. */ "Only see the most relevant stats. Add insights to fit your needs." = "Hanya lihat statistik yang paling relevan. Tambahkan wawasan untuk menyesuaikan dengan kebutuhan Anda."; /* No comment provided by engineer. */ "Only show excerpt" = "Hanya tampilkan kutipan"; +/* Message telling the user that they've only enabled limited photo library permissions for the app. */ +"Only the selected photos you've given access to are available." = "Only the selected photos you've given access to are available."; + /* An informal exclaimation that means `something went wrong`. Title for the view when there's an error loading Activity Log Title for the view when there's an error loading scan status @@ -5478,6 +5506,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Description of a Quick Start Tour */ "Preview your new site to see what your visitors will see." = "Pratinjau situs baru Anda untuk mengetahui tampilan situs yang akan dilihat oleh pengunjung."; +/* Accessibility label for the button which shows the previous month in the monthly calendar view */ +"Previous month" = "Previous month"; + /* Accessibility label for the previous notification button */ "Previous notification" = "Pemberitahuan sebelumnya"; @@ -5775,7 +5806,7 @@ translators: %s: Select control button label e.g. \"Button width\" */ "Remove Site Icon" = "Hapus Ikon Situs"; /* No comment provided by engineer. */ -"Remove as Featured Image " = "Hapus dari Gambar Andalan "; +"Remove as Featured Image" = "Remove as Featured Image"; /* No comment provided by engineer. */ "Remove block" = "Hapus blok"; @@ -6235,6 +6266,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Register Domain - Domain contact information field placeholder for Country */ "Select Country" = "Pilih Negara"; +/* Title of button that allows the user to select more photos to access within the app */ +"Select More" = "Select More"; + /* Blog Picker's Title */ "Select Site" = "Pilih Situs"; @@ -6298,6 +6332,12 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Error message when user tries a no longer existent video media object. */ "Selected media is unavailable." = "Media yang dipilih tidak tersedia."; +/* Accessibility label for summary of currently single date. %1$@ is the date */ +"Selected range: %1$@ only" = "Selected range: %1$@ only"; + +/* Accessibility label for summary of currently selected range. %1$@ is the start date, %2$@ is the end date. */ +"Selected range: %1$@ to %2$@" = "Selected range: %1$@ to %2$@"; + /* translators: %s: Select font size option value e.g: \"Selected: Large\". translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Selected: %s" = "Terpilih: %s"; @@ -6358,7 +6398,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Set Parent" = "Atur Induk"; /* No comment provided by engineer. */ -"Set as Featured Image " = "Atur sebagai Gambar Andalan "; +"Set as Featured Image" = "Set as Featured Image"; /* Label for a button that sets the selected page as the site's Homepage */ "Set as Homepage" = "Atur sebagai Beranda"; @@ -6576,6 +6616,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Title for the Language Picker View */ "Site Language" = "Bahasa Situs"; +/* Title for the site menu view on the My Site screen */ +"Site Menu" = "Site Menu"; + /* Describes a site redirect domain */ "Site Redirect" = "Pengalihan Situs"; @@ -6763,7 +6806,6 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Button title for Spam comment state. Marks comment as spam. - Spam Title of spam Comments filter. */ "Spam" = "Spam"; @@ -7106,7 +7148,8 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Description shown when a user logs in with Google but no matching WordPress.com account is found */ "The Google account \"%@\" doesn't match any account on WordPress.com" = "Akun Google \"%@\" tidak cocok dengan akun apa pun di WordPress.com"; -/* Message of error prompt shown when a user tries to perform an action without an internet connection. */ +/* Error message shown when a media upload fails because the user isn't connected to the Internet. + Message of error prompt shown when a user tries to perform an action without an internet connection. */ "The Internet connection appears to be offline." = "Sepertinya koneksi Internet-nya terputus."; /* Message informing the user that the site title can only be changed by an administrator user. */ @@ -7145,8 +7188,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Message shown when an image failed to load while trying to add it to the Media library. */ "The image could not be added to the Media Library." = "Gambar tidak bisa ditambahkan ke Pustaka Media."; -/* Error message shown when a media upload fails because the user isn't connected to the internet. - Message of error prompt shown when a user tries to perform an action without an internet connection. */ +/* Message of error prompt shown when a user tries to perform an action without an internet connection. */ "The internet connection appears to be offline." = "Sepertinya koneksi internet-nya terputus."; /* Message shown when an asset failed to load while trying to add it to the Media library. */ @@ -7182,6 +7224,12 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Description shown in alert to confirm skipping all quick start items */ "The quick start tour will guide you through building a basic site. Are you sure you want to skip? " = "Tur mulai cepat akan memandu Anda dalam membuat situs dasar. Anda yakin ingin melewatinya? "; +/* A failure reason for when the request couldn't be serialized. */ +"The serialization of the request failed." = "The serialization of the request failed."; + +/* A failure reason for when the response couldn't be serialized. */ +"The serialization of the response failed." = "The serialization of the response failed."; + /* No comment provided by engineer. */ "The server returned an empty response. This usually means you need to increase the memory limit for your site." = "Server memberi respon kosong. Biasanya ini berarti Anda perlu meningkatkan batas memori situs Anda."; @@ -7282,6 +7330,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Error message informing the user that there was a problem blocking posts from a site from their reader. */ "There was a problem blocking posts from the specified site." = "Terjadi kesalahan saat memblokir pos dari situs yang telah ditentukan."; +/* A general error message shown to the user when there was an API communication failure. */ +"There was a problem communicating with the site." = "There was a problem communicating with the site."; + /* Message for the warning shown to the user when the app realizes there should be an auth token but there isn't one. */ "There was a problem connecting to WordPress.com. Please log in again." = "Ada masalah saat berusaha terhubung dengan WordPress.com. Silakan login lagi."; @@ -7450,12 +7501,18 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Message displayed when a threat is ignored successfully. */ "Threat ignored." = "Ancaman diabaikan."; +/* No comment provided by engineer. */ +"Three" = "Three"; + /* Thumbnail image size. Should be the same as in core WP. */ "Thumbnail" = "Miniatur"; /* Message shown if a thumbnail preview of a media item unavailable. */ "Thumbnail unavailable." = "Gambar mini tidak tersedia"; +/* No comment provided by engineer. */ +"Tiled gallery settings" = "Tiled gallery settings"; + /* Blog Writing Settings: Time Format Writing Time Format Settings Title */ "Time Format" = "Format Waktu"; @@ -7600,13 +7657,16 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* No comment provided by engineer. */ "Transform block…" = "Mengubah blok..."; -/* Accessibility label for trash buttons in nav bars +/* Accessibility label for trash button to delete items from the user's media library + Accessibility label for trash buttons in nav bars Button title for Trash comment state. - Trash button title Trashes a comment Trashes the comment */ "Trash" = "Buang"; +/* Accessibility hint for trash button to delete items from the user's media library */ +"Trash selected media" = "Trash selected media"; + /* Title of the trash page confirmation alert. */ "Trash this page?" = "Hapus halaman ini?"; @@ -7687,6 +7747,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Title for the setting to edit the twitter username used when sharing to twitter. */ "Twitter Username" = "Nama Pengguna Twitter"; +/* No comment provided by engineer. */ +"Two" = "Two"; + /* Type menu item in share extension. */ "Type" = "Jenis"; @@ -7783,7 +7846,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Unable to play video" = "Tidak dapat memutar video"; /* No comment provided by engineer. */ -"Unable to read the WordPress site at that URL. Tap 'Need Help?' to view the FAQ." = "Tidak dapat membaca situs WordPress dalam URL tersebut. Ketuk 'Butuh Bantuan?' untuk melihat FAQ."; +"Unable to read the WordPress site at that URL. Tap 'Need more help?' to view the FAQ." = "Unable to read the WordPress site at that URL. Tap 'Need more help?' to view the FAQ."; /* Title for the Jetpack Restore Failed message. */ "Unable to restore your site" = "Tidak dapat memulihkan situs Anda"; @@ -7866,6 +7929,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Underline" = "Garis Bawah"; /* Button in the notification presented in Reader when a post removed from saved for later + Button title. Reverts a comment moderation action. Button title. Reverts the previous notification operation Revert an operation The title of an 'undo' button. Tapping the button moves a trashed page out of the trash folder. @@ -8524,9 +8588,13 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Blog Writing Settings: Weeks starts on */ "Week starts on" = "Minggu dimulai"; -/* Setting: indicates if the site reports its Weekly Roundup */ +/* Setting: indicates if the site reports its Weekly Roundup + Title of Weekly Roundup push notification */ "Weekly Roundup" = "Ringkasan Mingguan"; +/* Title of Weekly Roundup push notification. %@ is a placeholder and will be replaced with the title of one of the user's websites. */ +"Weekly Roundup: %@" = "Weekly Roundup: %@"; + /* Title of Weeks stats filter. */ "Weeks" = "Minggu"; @@ -8830,12 +8898,12 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* A text for subtitle label on Login epilogue screen */ "You can switch sites at any time." = "Anda dapat berganti situs kapan saja."; +/* Prompt shown on the Blogging Reminders Settings screen. */ +"You can update this any time" = "You can update this any time"; + /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "Anda dapat melakukan pembaruan ini kapan saja melalui Situs Saya > Pengaturan Situs"; -/* Prompt shown on the Blogging Reminders Settings screen. */ -"You can update this anytime" = "Anda dapat memperbaruinya kapan saja"; - /* No comment provided by engineer. */ "You cannot use that email address to signup. We are having problems with them blocking some of our email. Please use another email provider." = "Anda tidak dapat menggunakan alamat surel tersebut untuk pendaftaran. Kami mengalami masalah dengan mereka memblokir beberapa surel dari kami. Silahkan gunakan penyedia layanan surel lainnya."; @@ -9059,6 +9127,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* The default Jetpack view message */ "Your website credentials will not be stored and are used only for the purpose of installing Jetpack." = "Kredensial situs web Anda tidak akan disimpan dan hanya akan digunakan untuk tujuan penginstalan Jetpack."; +/* Prompt displayed as part of the stats Weekly Roundup push notification. */ +"Your weekly roundup is ready, tap here to see the details!" = "Your weekly roundup is ready, tap here to see the details!"; + /* Describes the expected behavior when the user disables in-app notifications in Reader Comments. */ "You’re following this conversation. You will receive an email and a notification whenever a new comment is made." = "Anda mengikuti percakapan ini. Anda akan menerima email dan notifikasi setiap kali ada komentar baru."; diff --git a/WordPress/Resources/is.lproj/Localizable.strings b/WordPress/Resources/is.lproj/Localizable.strings index 9b87b64e09ab..0e8cb4d65749 100644 --- a/WordPress/Resources/is.lproj/Localizable.strings +++ b/WordPress/Resources/is.lproj/Localizable.strings @@ -468,7 +468,8 @@ translators: Block name. %s: The localized block name */ /* Label for the Activity Type filter button when there are more than 1 activity type selected */ "Activity Type (%1$d)" = "Activity Type (%1$d)"; -/* Remove asset from media picker list */ +/* Accessibility label for add button to add items to the user's media library + Remove asset from media picker list */ "Add" = "Bæta við"; /* Action for Media Picker to indicate selection of media. The argument in the string represents the number of elements (as numeric digits) selected */ @@ -564,6 +565,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Add menu item to children" = "Bæta valmyndaratriði við undiratriði"; +/* Accessibility hint for add button to add items to the user's media library */ +"Add new media" = "Add new media"; + /* Screen reader text for Menus button that adds a new menu to a site. */ "Add new menu" = "Add new menu"; @@ -704,6 +708,12 @@ translators: Block name. %s: The localized block name */ /* Title of a row displayed on the debug screen used to indicate whether crash logs should be forced to send, even if they otherwise wouldn't */ "Always Send Crash Logs" = "Always Send Crash Logs"; +/* A failure reason for when an error HTTP status code was returned from the site, with the specific error code. */ +"An HTTP error code %i was returned." = "An HTTP error code %i was returned."; + +/* A failure reason for when an error HTTP status code was returned from the site. */ +"An HTTP error code was returned." = "An HTTP error code was returned."; + /* Error message when loading failed because there's no connection */ "An active internet connection is required" = "An active internet connection is required"; @@ -756,6 +766,9 @@ translators: Block name. %s: The localized block name */ /* Text displayed when a stat section failed to load. */ "An error occurred." = "An error occurred."; +/* A failure reason for when the error that occured wasn't able to be determined. */ +"An unknown error occurred." = "An unknown error occurred."; + /* Error message shown when a media upload fails for unknown reason and the user should try again. */ "An unknown error occurred. Please try again." = "Óþekkt villa kom upp. Vinsamlegast reynið aftur."; @@ -817,18 +830,9 @@ translators: Block name. %s: The localized block name */ /* Message prompting the user to confirm that they want to disconnect Jetpack from the site. */ "Are you sure you want to disconnect Jetpack from the site?" = "Are you sure you want to disconnect Jetpack from the site?"; -/* Message asking for confirmation before marking a comment as spam */ -"Are you sure you want to mark this comment as Spam?" = "Ertu viss um að þú viljir merkja þessa athugasemd sem amapóst?"; - -/* Message asking for confirmation before marking a comment as trash */ -"Are you sure you want to mark this comment as Trash?" = "Are you sure you want to mark this comment as Trash?"; - /* Message prompting the user to confirm that they want to permanently delete a group of media items. */ "Are you sure you want to permanently delete these items?" = "Ertu viss um að þú viljir eyða þessum hlutum varanlega?"; -/* Message asking for confirmation on comment deletion */ -"Are you sure you want to permanently delete this comment?" = "Are you sure you want to permanently delete this comment?"; - /* Message prompting the user to confirm that they want to permanently delete a media item. Should match Calypso. */ "Are you sure you want to permanently delete this item?" = "Ertu viss um að þú viljir eyða þessum hlut varanlega?"; @@ -1292,6 +1296,9 @@ translators: Block name. %s: The localized block name */ Main title */ "Change Password" = "Change Password"; +/* Title of button that takes user to the system Settings section for the app */ +"Change Settings" = "Change Settings"; + /* Title of an alert prompting the user that they are about to change the blog they are posting to. */ "Change Site" = "Breyta vef"; @@ -1587,6 +1594,9 @@ translators: Block name. %s: The localized block name */ My First Post */ "Comment on" = "Comment on"; +/* Message displayed when approving a comment succeeds. */ +"Comment set to approved." = "Comment set to approved."; + /* Message displayed when pending a comment succeeds. */ "Comment set to pending." = "Comment set to pending."; @@ -1677,8 +1687,7 @@ translators: Block name. %s: The localized block name */ /* Section title for the configure table section in the blog details screen */ "Configure" = "Stilla"; -/* Confirm - Verb. Title for Jetpack Restore confirm button. */ +/* Verb. Title for Jetpack Restore confirm button. */ "Confirm" = "Staðfesta"; /* Close Account alert title */ @@ -2117,7 +2126,8 @@ translators: Block name. %s: The localized block name */ /* Title for the app appearance setting for dark mode */ "Dark" = "Dark"; -/* Action title. Noun. Opens the user's WordPress.com dashboard in an external browser. */ +/* Action title. Noun. Opens the user's WordPress.com dashboard in an external browser. + Title for dashboard view on the My Site screen */ "Dashboard" = "Stjórnborð"; /* Title for a threat that includes the number of database rows affected */ @@ -2174,7 +2184,6 @@ translators: Block name. %s: The localized block name */ "Defaults for New Posts" = "Sjálfgildi fyrir nýjar færslur"; /* Delete - Delete button title Delete button title for the warning shown to the user when he refuses to re-login when the authToken is missing. Title for button that permanently deletes a media item (photo / video) Title for button that permanently deletes one or more media items (photos / videos) @@ -2533,7 +2542,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Each block has its own settings. To find them, tap on a block. Its settings will appear on the toolbar at the bottom of the screen." = "Each block has its own settings. To find them, tap on a block. Its settings will appear on the toolbar at the bottom of the screen."; -/* Edit the post. +/* Accessibility label for edit button to enable multi selection mode in the user's media library + Edit the post. Editing GIF alert default action button. Edits a Comment Edits the comment @@ -2740,6 +2750,9 @@ translators: Block name. %s: The localized block name */ /* Secondary message shown when there are no domains that match the user entered text. */ "Enter different words above and we'll look for an address that matches it." = "Enter different words above and we'll look for an address that matches it."; +/* Accessibility hint for edit button to enable multi selection mode in the user's media library */ +"Enter edit mode to enable multi select to delete" = "Enter edit mode to enable multi select to delete"; + /* (placeholder) Help enter WordPress password Placeholder of a field to type a password to protect the post. */ "Enter password" = "Sláðu inn lykilorð"; @@ -2790,9 +2803,6 @@ translators: Block name. %s: The localized block name */ /* There was an error activating a plugin, placeholder is the plugin name */ "Error activating %@." = "Error activating %@."; -/* Message shown when approving a Comment fails. */ -"Error approving comment" = "Error approving comment"; - /* Message displayed when approving a comment fails. */ "Error approving comment." = "Error approving comment."; @@ -2802,9 +2812,6 @@ translators: Block name. %s: The localized block name */ /* There was an error deactivating a plugin, placeholder is the plugin name */ "Error deactivating %@." = "Error deactivating %@."; -/* Message shown when deleting a Comment fails. */ -"Error deleting comment" = "Error deleting comment"; - /* Message displayed when deleting a comment fails. */ "Error deleting comment." = "Error deleting comment."; @@ -2832,9 +2839,6 @@ translators: Block name. %s: The localized block name */ /* Messaged displayed when fetching plugins failed. */ "Error loading plugins" = "Error loading plugins"; -/* Message shown when marking a Comment as spam fails. */ -"Error marking comment as spam" = "Error marking comment as spam"; - /* Message displayed when spamming a comment fails. */ "Error marking comment as spam." = "Error marking comment as spam."; @@ -2874,12 +2878,12 @@ translators: Block name. %s: The localized block name */ /* Generic message shown when there was an error trying to re-send email verification. */ "Error sending verification email. Check your connection and try again." = "Error sending verification email. Check your connection and try again."; +/* Message displayed when approving a comment fails. */ +"Error setting comment to approved." = "Error setting comment to approved."; + /* Message displayed when pending a comment fails. */ "Error setting comment to pending." = "Error setting comment to pending."; -/* Message shown when unapproving a Comment fails. */ -"Error unapproving comment" = "Error unapproving comment"; - /* There was an error updating a plugin, placeholder is the plugin name */ "Error updating %@." = "Error updating %@."; @@ -3199,6 +3203,9 @@ translators: Block name. %s: The localized block name */ /* Next web page */ "Forward" = "Áfram"; +/* No comment provided by engineer. */ +"Four" = "Four"; + /* Browse free themes selection title */ "Free" = "Ókeypis"; @@ -3235,6 +3242,9 @@ translators: Block name. %s: The localized block name */ /* translators: accessibility text. %s: gallery caption. */ "Gallery caption. %s" = "Gallery caption. %s"; +/* No comment provided by engineer. */ +"Gallery style" = "Gallery style"; + /* An example tag used in the login prologue screens. */ "Gardening" = "Gardening"; @@ -3853,6 +3863,9 @@ translators: Block name. %s: The localized block name */ User's Last Name */ "Last Name" = "Kenninafn"; +/* Content of a weekly roundup push notification containing stats about the user's site. The % markers are placeholders and will be replaced by the appropriate number of views, comments, and likes. The numbers indicate the order, so they can be rearranged if necessary – 1 is views, 2 is comments, 3 is likes. */ +"Last week you had %1$d views, %2$d comments and %3$d likes." = "Last week you had %1$d views, %2$d comments and %3$d likes."; + /* Insights latest post summary header */ "Latest Post Summary" = "Samantekt um síðustu færslu"; @@ -4442,6 +4455,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Navigates to customize the gradient" = "Navigates to customize the gradient"; +/* No comment provided by engineer. */ +"Navigates to layout selection screen" = "Navigates to layout selection screen"; + /* translators: %s: Select control button label e.g. Small translators: %s: Select control button label e.g. \"Button width\" */ "Navigates to select %s" = "Navigates to select %s"; @@ -4513,6 +4529,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Table view title for the quick start section. */ "Next Steps" = "Next Steps"; +/* Accessibility label for the button which shows the previous month in the monthly calendar view */ +"Next month" = "Next month"; + /* Accessibility label for the next notification button */ "Next notification" = "Næsta tilknning"; @@ -4611,6 +4630,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ Text shown when there is no data to display in the stats list view. */ "No data yet" = "No data yet"; +/* Accessibility label for no currently selected range. */ +"No date range selected" = "No date range selected"; + /* Title for the view when there aren't any fixed threats to display */ "No fixed threats" = "No fixed threats"; @@ -4886,12 +4908,18 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* A subtitle with more detailed info for the user when no WordPress.com sites could be found. */ "Once you create a WordPress.com site, you can reblog content that you like to your own site." = "Once you create a WordPress.com site, you can reblog content that you like to your own site."; +/* No comment provided by engineer. */ +"One" = "One"; + /* Subtitle displayed when the user has removed all Insights from display. */ "Only see the most relevant stats. Add insights to fit your needs." = "Only see the most relevant stats. Add insights to fit your needs."; /* No comment provided by engineer. */ "Only show excerpt" = "Only show excerpt"; +/* Message telling the user that they've only enabled limited photo library permissions for the app. */ +"Only the selected photos you've given access to are available." = "Only the selected photos you've given access to are available."; + /* An informal exclaimation that means `something went wrong`. Title for the view when there's an error loading Activity Log Title for the view when there's an error loading scan status @@ -5478,6 +5506,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Description of a Quick Start Tour */ "Preview your new site to see what your visitors will see." = "Preview your new site to see what your visitors will see."; +/* Accessibility label for the button which shows the previous month in the monthly calendar view */ +"Previous month" = "Previous month"; + /* Accessibility label for the previous notification button */ "Previous notification" = "Fyrri tilkynning"; @@ -5775,7 +5806,7 @@ translators: %s: Select control button label e.g. \"Button width\" */ "Remove Site Icon" = "Remove Site Icon"; /* No comment provided by engineer. */ -"Remove as Featured Image " = "Remove as Featured Image "; +"Remove as Featured Image" = "Remove as Featured Image"; /* No comment provided by engineer. */ "Remove block" = "Remove block"; @@ -6235,6 +6266,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Register Domain - Domain contact information field placeholder for Country */ "Select Country" = "Select Country"; +/* Title of button that allows the user to select more photos to access within the app */ +"Select More" = "Select More"; + /* Blog Picker's Title */ "Select Site" = "Veldu vef"; @@ -6298,6 +6332,12 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Error message when user tries a no longer existent video media object. */ "Selected media is unavailable." = "Valin skrá er ekki tiltæk."; +/* Accessibility label for summary of currently single date. %1$@ is the date */ +"Selected range: %1$@ only" = "Selected range: %1$@ only"; + +/* Accessibility label for summary of currently selected range. %1$@ is the start date, %2$@ is the end date. */ +"Selected range: %1$@ to %2$@" = "Selected range: %1$@ to %2$@"; + /* translators: %s: Select font size option value e.g: \"Selected: Large\". translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Selected: %s" = "Selected: %s"; @@ -6358,7 +6398,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Set Parent" = "Set Parent"; /* No comment provided by engineer. */ -"Set as Featured Image " = "Set as Featured Image "; +"Set as Featured Image" = "Set as Featured Image"; /* Label for a button that sets the selected page as the site's Homepage */ "Set as Homepage" = "Set as Homepage"; @@ -6576,6 +6616,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Title for the Language Picker View */ "Site Language" = "Tungumál síðu"; +/* Title for the site menu view on the My Site screen */ +"Site Menu" = "Site Menu"; + /* Describes a site redirect domain */ "Site Redirect" = "Áframsending vefs"; @@ -6763,7 +6806,6 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Button title for Spam comment state. Marks comment as spam. - Spam Title of spam Comments filter. */ "Spam" = "Amapóstur"; @@ -7106,7 +7148,8 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Description shown when a user logs in with Google but no matching WordPress.com account is found */ "The Google account \"%@\" doesn't match any account on WordPress.com" = "The Google account \"%@\" doesn't match any account on WordPress.com"; -/* Message of error prompt shown when a user tries to perform an action without an internet connection. */ +/* Error message shown when a media upload fails because the user isn't connected to the Internet. + Message of error prompt shown when a user tries to perform an action without an internet connection. */ "The Internet connection appears to be offline." = "Ekkert samband virðist vera við internetið."; /* Message informing the user that the site title can only be changed by an administrator user. */ @@ -7145,8 +7188,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Message shown when an image failed to load while trying to add it to the Media library. */ "The image could not be added to the Media Library." = "The image could not be added to the Media Library."; -/* Error message shown when a media upload fails because the user isn't connected to the internet. - Message of error prompt shown when a user tries to perform an action without an internet connection. */ +/* Message of error prompt shown when a user tries to perform an action without an internet connection. */ "The internet connection appears to be offline." = "Ekkert samband virðist vera við internetið."; /* Message shown when an asset failed to load while trying to add it to the Media library. */ @@ -7182,6 +7224,12 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Description shown in alert to confirm skipping all quick start items */ "The quick start tour will guide you through building a basic site. Are you sure you want to skip? " = "The quick start tour will guide you through building a basic site. Are you sure you want to skip? "; +/* A failure reason for when the request couldn't be serialized. */ +"The serialization of the request failed." = "The serialization of the request failed."; + +/* A failure reason for when the response couldn't be serialized. */ +"The serialization of the response failed." = "The serialization of the response failed."; + /* No comment provided by engineer. */ "The server returned an empty response. This usually means you need to increase the memory limit for your site." = "Netþjónninn skilaði tómu svari. Það þýðir oftast að þú þurfir meira minni fyrir vefinn þinn."; @@ -7282,6 +7330,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Error message informing the user that there was a problem blocking posts from a site from their reader. */ "There was a problem blocking posts from the specified site." = "Það kom upp vandamál við að loka fyrir færslur frá þessum vef."; +/* A general error message shown to the user when there was an API communication failure. */ +"There was a problem communicating with the site." = "There was a problem communicating with the site."; + /* Message for the warning shown to the user when the app realizes there should be an auth token but there isn't one. */ "There was a problem connecting to WordPress.com. Please log in again." = "Það kom upp vandamál við að tengjast WordPress.com. Vinsamlegast reyndu innskráningu aftur."; @@ -7450,12 +7501,18 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Message displayed when a threat is ignored successfully. */ "Threat ignored." = "Threat ignored."; +/* No comment provided by engineer. */ +"Three" = "Three"; + /* Thumbnail image size. Should be the same as in core WP. */ "Thumbnail" = "Þumla"; /* Message shown if a thumbnail preview of a media item unavailable. */ "Thumbnail unavailable." = "Thumbnail unavailable."; +/* No comment provided by engineer. */ +"Tiled gallery settings" = "Tiled gallery settings"; + /* Blog Writing Settings: Time Format Writing Time Format Settings Title */ "Time Format" = "Time Format"; @@ -7600,13 +7657,16 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* No comment provided by engineer. */ "Transform block…" = "Transform block…"; -/* Accessibility label for trash buttons in nav bars +/* Accessibility label for trash button to delete items from the user's media library + Accessibility label for trash buttons in nav bars Button title for Trash comment state. - Trash button title Trashes a comment Trashes the comment */ "Trash" = "Rusl"; +/* Accessibility hint for trash button to delete items from the user's media library */ +"Trash selected media" = "Trash selected media"; + /* Title of the trash page confirmation alert. */ "Trash this page?" = "Trash this page?"; @@ -7687,6 +7747,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Title for the setting to edit the twitter username used when sharing to twitter. */ "Twitter Username" = "Twitter notandanafn"; +/* No comment provided by engineer. */ +"Two" = "Two"; + /* Type menu item in share extension. */ "Type" = "Type"; @@ -7783,7 +7846,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Unable to play video" = "Unable to play video"; /* No comment provided by engineer. */ -"Unable to read the WordPress site at that URL. Tap 'Need Help?' to view the FAQ." = "Gat ekki lesið WordPress vefinn á þessari slóð. Ýttu á ‘Vantar þig aðstoð?’ til þess að skoða SOS."; +"Unable to read the WordPress site at that URL. Tap 'Need more help?' to view the FAQ." = "Unable to read the WordPress site at that URL. Tap 'Need more help?' to view the FAQ."; /* Title for the Jetpack Restore Failed message. */ "Unable to restore your site" = "Unable to restore your site"; @@ -7866,6 +7929,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Underline" = "Undirstrika"; /* Button in the notification presented in Reader when a post removed from saved for later + Button title. Reverts a comment moderation action. Button title. Reverts the previous notification operation Revert an operation The title of an 'undo' button. Tapping the button moves a trashed page out of the trash folder. @@ -8524,9 +8588,13 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Blog Writing Settings: Weeks starts on */ "Week starts on" = "Week starts on"; -/* Setting: indicates if the site reports its Weekly Roundup */ +/* Setting: indicates if the site reports its Weekly Roundup + Title of Weekly Roundup push notification */ "Weekly Roundup" = "Weekly Roundup"; +/* Title of Weekly Roundup push notification. %@ is a placeholder and will be replaced with the title of one of the user's websites. */ +"Weekly Roundup: %@" = "Weekly Roundup: %@"; + /* Title of Weeks stats filter. */ "Weeks" = "Vikur"; @@ -8830,12 +8898,12 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* A text for subtitle label on Login epilogue screen */ "You can switch sites at any time." = "You can switch sites at any time."; +/* Prompt shown on the Blogging Reminders Settings screen. */ +"You can update this any time" = "You can update this any time"; + /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "You can update this any time via My Site > Site Settings"; -/* Prompt shown on the Blogging Reminders Settings screen. */ -"You can update this anytime" = "You can update this anytime"; - /* No comment provided by engineer. */ "You cannot use that email address to signup. We are having problems with them blocking some of our email. Please use another email provider." = "Þú getur ekki notað þetta tölvupóstfang til að skrá þig. Við eigum í vandræðum með það að tölvupóstur frá okkur berst ekki þangað. Vinsamlegast notið aðra tölvupóstveitu."; @@ -9059,6 +9127,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* The default Jetpack view message */ "Your website credentials will not be stored and are used only for the purpose of installing Jetpack." = "Your website credentials will not be stored and are used only for the purpose of installing Jetpack."; +/* Prompt displayed as part of the stats Weekly Roundup push notification. */ +"Your weekly roundup is ready, tap here to see the details!" = "Your weekly roundup is ready, tap here to see the details!"; + /* Describes the expected behavior when the user disables in-app notifications in Reader Comments. */ "You’re following this conversation. You will receive an email and a notification whenever a new comment is made." = "You’re following this conversation. You will receive an email and a notification whenever a new comment is made."; diff --git a/WordPress/Resources/it.lproj/Localizable.strings b/WordPress/Resources/it.lproj/Localizable.strings index 9b5edb432858..b5a5cf7b1aab 100644 --- a/WordPress/Resources/it.lproj/Localizable.strings +++ b/WordPress/Resources/it.lproj/Localizable.strings @@ -468,7 +468,8 @@ translators: Block name. %s: The localized block name */ /* Label for the Activity Type filter button when there are more than 1 activity type selected */ "Activity Type (%1$d)" = "Tipo di attività (%1$d)"; -/* Remove asset from media picker list */ +/* Accessibility label for add button to add items to the user's media library + Remove asset from media picker list */ "Add" = "Aggiungi"; /* Action for Media Picker to indicate selection of media. The argument in the string represents the number of elements (as numeric digits) selected */ @@ -564,6 +565,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Add menu item to children" = "Aggiungi voce di menu in figli"; +/* Accessibility hint for add button to add items to the user's media library */ +"Add new media" = "Add new media"; + /* Screen reader text for Menus button that adds a new menu to a site. */ "Add new menu" = "Aggiungi nuovo menu"; @@ -704,6 +708,12 @@ translators: Block name. %s: The localized block name */ /* Title of a row displayed on the debug screen used to indicate whether crash logs should be forced to send, even if they otherwise wouldn't */ "Always Send Crash Logs" = "Invia sempre i registri di crash"; +/* A failure reason for when an error HTTP status code was returned from the site, with the specific error code. */ +"An HTTP error code %i was returned." = "An HTTP error code %i was returned."; + +/* A failure reason for when an error HTTP status code was returned from the site. */ +"An HTTP error code was returned." = "An HTTP error code was returned."; + /* Error message when loading failed because there's no connection */ "An active internet connection is required" = "È necessaria una connessione Internet funzionante"; @@ -756,6 +766,9 @@ translators: Block name. %s: The localized block name */ /* Text displayed when a stat section failed to load. */ "An error occurred." = "Si è verificato un errore."; +/* A failure reason for when the error that occured wasn't able to be determined. */ +"An unknown error occurred." = "An unknown error occurred."; + /* Error message shown when a media upload fails for unknown reason and the user should try again. */ "An unknown error occurred. Please try again." = "Si è verificato un errore sconosciuto. Riprova."; @@ -817,18 +830,9 @@ translators: Block name. %s: The localized block name */ /* Message prompting the user to confirm that they want to disconnect Jetpack from the site. */ "Are you sure you want to disconnect Jetpack from the site?" = "Sei sicuro di voler disconnettere Jetpack dal sito?"; -/* Message asking for confirmation before marking a comment as spam */ -"Are you sure you want to mark this comment as Spam?" = "Sei sicuro di voler contrassegnare questo commento come spam?"; - -/* Message asking for confirmation before marking a comment as trash */ -"Are you sure you want to mark this comment as Trash?" = "Desideri contrassegnare questo commento come Cestino?"; - /* Message prompting the user to confirm that they want to permanently delete a group of media items. */ "Are you sure you want to permanently delete these items?" = "Sei sicuro di volere eliminare per sempre questi elementi?"; -/* Message asking for confirmation on comment deletion */ -"Are you sure you want to permanently delete this comment?" = "Desideri eliminare questo commento in modo permanente?"; - /* Message prompting the user to confirm that they want to permanently delete a media item. Should match Calypso. */ "Are you sure you want to permanently delete this item?" = "Desideri eliminare in modo permanente questo elemento?"; @@ -1292,6 +1296,9 @@ translators: Block name. %s: The localized block name */ Main title */ "Change Password" = "Cambia la password"; +/* Title of button that takes user to the system Settings section for the app */ +"Change Settings" = "Change Settings"; + /* Title of an alert prompting the user that they are about to change the blog they are posting to. */ "Change Site" = "Cambia sito"; @@ -1587,6 +1594,9 @@ translators: Block name. %s: The localized block name */ My First Post */ "Comment on" = "Commento su"; +/* Message displayed when approving a comment succeeds. */ +"Comment set to approved." = "Comment set to approved."; + /* Message displayed when pending a comment succeeds. */ "Comment set to pending." = "Commento impostato su In sospeso."; @@ -1677,8 +1687,7 @@ translators: Block name. %s: The localized block name */ /* Section title for the configure table section in the blog details screen */ "Configure" = "Configura"; -/* Confirm - Verb. Title for Jetpack Restore confirm button. */ +/* Verb. Title for Jetpack Restore confirm button. */ "Confirm" = "Conferma"; /* Close Account alert title */ @@ -2117,7 +2126,8 @@ translators: Block name. %s: The localized block name */ /* Title for the app appearance setting for dark mode */ "Dark" = "Scuro"; -/* Action title. Noun. Opens the user's WordPress.com dashboard in an external browser. */ +/* Action title. Noun. Opens the user's WordPress.com dashboard in an external browser. + Title for dashboard view on the My Site screen */ "Dashboard" = "Bacheca"; /* Title for a threat that includes the number of database rows affected */ @@ -2174,7 +2184,6 @@ translators: Block name. %s: The localized block name */ "Defaults for New Posts" = "Valori predefiniti per i nuovi articoli"; /* Delete - Delete button title Delete button title for the warning shown to the user when he refuses to re-login when the authToken is missing. Title for button that permanently deletes a media item (photo / video) Title for button that permanently deletes one or more media items (photos / videos) @@ -2533,7 +2542,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Each block has its own settings. To find them, tap on a block. Its settings will appear on the toolbar at the bottom of the screen." = "Ogni blocco ha le proprie impostazioni. Per trovarle tocca il blocco. Verranno visualizzate le impostazioni nella barra degli strumenti nella parte inferiore dello schermo."; -/* Edit the post. +/* Accessibility label for edit button to enable multi selection mode in the user's media library + Edit the post. Editing GIF alert default action button. Edits a Comment Edits the comment @@ -2740,6 +2750,9 @@ translators: Block name. %s: The localized block name */ /* Secondary message shown when there are no domains that match the user entered text. */ "Enter different words above and we'll look for an address that matches it." = "Inserire parole diverse nel campo in alto e cercheremo un indirizzo che corrisponda."; +/* Accessibility hint for edit button to enable multi selection mode in the user's media library */ +"Enter edit mode to enable multi select to delete" = "Enter edit mode to enable multi select to delete"; + /* (placeholder) Help enter WordPress password Placeholder of a field to type a password to protect the post. */ "Enter password" = "Inserisci la password"; @@ -2790,9 +2803,6 @@ translators: Block name. %s: The localized block name */ /* There was an error activating a plugin, placeholder is the plugin name */ "Error activating %@." = "Errore durante l'attivazione di %@."; -/* Message shown when approving a Comment fails. */ -"Error approving comment" = "Errore durante l'approvazione del commento"; - /* Message displayed when approving a comment fails. */ "Error approving comment." = "Errore durante l'approvazione del commento."; @@ -2802,9 +2812,6 @@ translators: Block name. %s: The localized block name */ /* There was an error deactivating a plugin, placeholder is the plugin name */ "Error deactivating %@." = "Errore durante la disattivazione di %@."; -/* Message shown when deleting a Comment fails. */ -"Error deleting comment" = "Errore durante l'eliminazione del commento"; - /* Message displayed when deleting a comment fails. */ "Error deleting comment." = "Errore durante l'eliminazione del commento."; @@ -2832,9 +2839,6 @@ translators: Block name. %s: The localized block name */ /* Messaged displayed when fetching plugins failed. */ "Error loading plugins" = "Errore durante il caricamento dei plugin."; -/* Message shown when marking a Comment as spam fails. */ -"Error marking comment as spam" = "Errore durante il contrassegno di un commento come spam"; - /* Message displayed when spamming a comment fails. */ "Error marking comment as spam." = "Errore durante il contrassegno di un commento come spam."; @@ -2874,12 +2878,12 @@ translators: Block name. %s: The localized block name */ /* Generic message shown when there was an error trying to re-send email verification. */ "Error sending verification email. Check your connection and try again." = "Errore durante l'invio dell'email di verifica. Controlla la connessione e riprova."; +/* Message displayed when approving a comment fails. */ +"Error setting comment to approved." = "Error setting comment to approved."; + /* Message displayed when pending a comment fails. */ "Error setting comment to pending." = "Errore durante l'impostazione del commento su In sospeso."; -/* Message shown when unapproving a Comment fails. */ -"Error unapproving comment" = "Errore durante la rimozione dell'approvazione del commento"; - /* There was an error updating a plugin, placeholder is the plugin name */ "Error updating %@." = "Errore durante l'aggiornamento di %@."; @@ -3199,6 +3203,9 @@ translators: Block name. %s: The localized block name */ /* Next web page */ "Forward" = "Inoltra"; +/* No comment provided by engineer. */ +"Four" = "Four"; + /* Browse free themes selection title */ "Free" = "Gratuito"; @@ -3235,6 +3242,9 @@ translators: Block name. %s: The localized block name */ /* translators: accessibility text. %s: gallery caption. */ "Gallery caption. %s" = "Didascalia della galleria. %s"; +/* No comment provided by engineer. */ +"Gallery style" = "Gallery style"; + /* An example tag used in the login prologue screens. */ "Gardening" = "Giardinaggio"; @@ -3853,6 +3863,9 @@ translators: Block name. %s: The localized block name */ User's Last Name */ "Last Name" = "Cognome"; +/* Content of a weekly roundup push notification containing stats about the user's site. The % markers are placeholders and will be replaced by the appropriate number of views, comments, and likes. The numbers indicate the order, so they can be rearranged if necessary – 1 is views, 2 is comments, 3 is likes. */ +"Last week you had %1$d views, %2$d comments and %3$d likes." = "Last week you had %1$d views, %2$d comments and %3$d likes."; + /* Insights latest post summary header */ "Latest Post Summary" = "Riassunto ultimo articolo"; @@ -4442,6 +4455,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Navigates to customize the gradient" = "Naviga alla personalizzazione del gradiente"; +/* No comment provided by engineer. */ +"Navigates to layout selection screen" = "Navigates to layout selection screen"; + /* translators: %s: Select control button label e.g. Small translators: %s: Select control button label e.g. \"Button width\" */ "Navigates to select %s" = "Sfoglia fino a selezionare %s"; @@ -4513,6 +4529,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Table view title for the quick start section. */ "Next Steps" = "Passi successivi"; +/* Accessibility label for the button which shows the previous month in the monthly calendar view */ +"Next month" = "Next month"; + /* Accessibility label for the next notification button */ "Next notification" = "Prossima notifica"; @@ -4611,6 +4630,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ Text shown when there is no data to display in the stats list view. */ "No data yet" = "Non sono ancora stati elaborati i dati disponibili."; +/* Accessibility label for no currently selected range. */ +"No date range selected" = "No date range selected"; + /* Title for the view when there aren't any fixed threats to display */ "No fixed threats" = "Nessuna minaccia risolta"; @@ -4886,12 +4908,18 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* A subtitle with more detailed info for the user when no WordPress.com sites could be found. */ "Once you create a WordPress.com site, you can reblog content that you like to your own site." = "Una volta creato un sito WordPress.com, puoi ripubblicare il contenuto che ti piace sul tuo sito."; +/* No comment provided by engineer. */ +"One" = "One"; + /* Subtitle displayed when the user has removed all Insights from display. */ "Only see the most relevant stats. Add insights to fit your needs." = "Vedi solo le statistiche più pertinenti. Aggiungi la panoramica secondo le tue esigenze."; /* No comment provided by engineer. */ "Only show excerpt" = "Mostra solo estratto"; +/* Message telling the user that they've only enabled limited photo library permissions for the app. */ +"Only the selected photos you've given access to are available." = "Only the selected photos you've given access to are available."; + /* An informal exclaimation that means `something went wrong`. Title for the view when there's an error loading Activity Log Title for the view when there's an error loading scan status @@ -5478,6 +5506,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Description of a Quick Start Tour */ "Preview your new site to see what your visitors will see." = "Visualizza un’anteprima del to nuovo sito per scoprire cosa vedono i tuoi visitatori."; +/* Accessibility label for the button which shows the previous month in the monthly calendar view */ +"Previous month" = "Previous month"; + /* Accessibility label for the previous notification button */ "Previous notification" = "Notifica precedente"; @@ -5775,7 +5806,7 @@ translators: %s: Select control button label e.g. \"Button width\" */ "Remove Site Icon" = "Rimuovi l'icona del sito"; /* No comment provided by engineer. */ -"Remove as Featured Image " = "Rimuovi come immagine in evidenza "; +"Remove as Featured Image" = "Remove as Featured Image"; /* No comment provided by engineer. */ "Remove block" = "Rimuovi il blocco"; @@ -6235,6 +6266,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Register Domain - Domain contact information field placeholder for Country */ "Select Country" = "Seleziona il paese"; +/* Title of button that allows the user to select more photos to access within the app */ +"Select More" = "Select More"; + /* Blog Picker's Title */ "Select Site" = "Seleziona sito"; @@ -6298,6 +6332,12 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Error message when user tries a no longer existent video media object. */ "Selected media is unavailable." = "Il file multimediale selezionato non è disponibile."; +/* Accessibility label for summary of currently single date. %1$@ is the date */ +"Selected range: %1$@ only" = "Selected range: %1$@ only"; + +/* Accessibility label for summary of currently selected range. %1$@ is the start date, %2$@ is the end date. */ +"Selected range: %1$@ to %2$@" = "Selected range: %1$@ to %2$@"; + /* translators: %s: Select font size option value e.g: \"Selected: Large\". translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Selected: %s" = "Selezionato: %s"; @@ -6358,7 +6398,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Set Parent" = "Imposta genitore"; /* No comment provided by engineer. */ -"Set as Featured Image " = "Imposta come immagine in evidenza "; +"Set as Featured Image" = "Set as Featured Image"; /* Label for a button that sets the selected page as the site's Homepage */ "Set as Homepage" = "Imposta come homepage"; @@ -6576,6 +6616,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Title for the Language Picker View */ "Site Language" = "Lingua del Sito"; +/* Title for the site menu view on the My Site screen */ +"Site Menu" = "Site Menu"; + /* Describes a site redirect domain */ "Site Redirect" = "Redirect del sito"; @@ -6763,7 +6806,6 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Button title for Spam comment state. Marks comment as spam. - Spam Title of spam Comments filter. */ "Spam" = "Spam"; @@ -7106,7 +7148,8 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Description shown when a user logs in with Google but no matching WordPress.com account is found */ "The Google account \"%@\" doesn't match any account on WordPress.com" = "L'account Google \"%@\" non corrisponde a nessun account su WordPress.com"; -/* Message of error prompt shown when a user tries to perform an action without an internet connection. */ +/* Error message shown when a media upload fails because the user isn't connected to the Internet. + Message of error prompt shown when a user tries to perform an action without an internet connection. */ "The Internet connection appears to be offline." = "La connessione Internet appare mancante."; /* Message informing the user that the site title can only be changed by an administrator user. */ @@ -7145,8 +7188,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Message shown when an image failed to load while trying to add it to the Media library. */ "The image could not be added to the Media Library." = "L'immagine non può essere aggiuntoa alla libreria dei media. "; -/* Error message shown when a media upload fails because the user isn't connected to the internet. - Message of error prompt shown when a user tries to perform an action without an internet connection. */ +/* Message of error prompt shown when a user tries to perform an action without an internet connection. */ "The internet connection appears to be offline." = "La connessione ad internet non è attiva."; /* Message shown when an asset failed to load while trying to add it to the Media library. */ @@ -7182,6 +7224,12 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Description shown in alert to confirm skipping all quick start items */ "The quick start tour will guide you through building a basic site. Are you sure you want to skip? " = "Il nostro tour iniziale ti guiderà attraverso la costruzione del sito. Desideri saltarlo? "; +/* A failure reason for when the request couldn't be serialized. */ +"The serialization of the request failed." = "The serialization of the request failed."; + +/* A failure reason for when the response couldn't be serialized. */ +"The serialization of the response failed." = "The serialization of the response failed."; + /* No comment provided by engineer. */ "The server returned an empty response. This usually means you need to increase the memory limit for your site." = "Il server ha restituito una risposta vuota. Questo di solito significa che è necessario aumentare il limite di memoria per il tuo sito."; @@ -7282,6 +7330,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Error message informing the user that there was a problem blocking posts from a site from their reader. */ "There was a problem blocking posts from the specified site." = "Si è verificato un problema bloccando gli articoli dal sito specificato"; +/* A general error message shown to the user when there was an API communication failure. */ +"There was a problem communicating with the site." = "There was a problem communicating with the site."; + /* Message for the warning shown to the user when the app realizes there should be an auth token but there isn't one. */ "There was a problem connecting to WordPress.com. Please log in again." = "Si è verificato un problema con la connessione a WordPress.com. Esegui nuovamente l'accesso."; @@ -7450,12 +7501,18 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Message displayed when a threat is ignored successfully. */ "Threat ignored." = "Minaccia ignorata."; +/* No comment provided by engineer. */ +"Three" = "Three"; + /* Thumbnail image size. Should be the same as in core WP. */ "Thumbnail" = "Miniatura"; /* Message shown if a thumbnail preview of a media item unavailable. */ "Thumbnail unavailable." = "Miniatura non disponibile."; +/* No comment provided by engineer. */ +"Tiled gallery settings" = "Tiled gallery settings"; + /* Blog Writing Settings: Time Format Writing Time Format Settings Title */ "Time Format" = "Formato ora"; @@ -7600,13 +7657,16 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* No comment provided by engineer. */ "Transform block…" = "Trasforma il blocco..."; -/* Accessibility label for trash buttons in nav bars +/* Accessibility label for trash button to delete items from the user's media library + Accessibility label for trash buttons in nav bars Button title for Trash comment state. - Trash button title Trashes a comment Trashes the comment */ "Trash" = "Elimina"; +/* Accessibility hint for trash button to delete items from the user's media library */ +"Trash selected media" = "Trash selected media"; + /* Title of the trash page confirmation alert. */ "Trash this page?" = "Spostare la pagina nel cestino?"; @@ -7687,6 +7747,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Title for the setting to edit the twitter username used when sharing to twitter. */ "Twitter Username" = "Nome utente su Twitter"; +/* No comment provided by engineer. */ +"Two" = "Two"; + /* Type menu item in share extension. */ "Type" = "Tipo"; @@ -7783,7 +7846,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Unable to play video" = "Impossibile riprodurre il video"; /* No comment provided by engineer. */ -"Unable to read the WordPress site at that URL. Tap 'Need Help?' to view the FAQ." = "Non è stato trovato un sito WordPress all'URL che hai inserito. Tocca 'Bisogno di Aiuto?' per visualizzare le FAQ."; +"Unable to read the WordPress site at that URL. Tap 'Need more help?' to view the FAQ." = "Unable to read the WordPress site at that URL. Tap 'Need more help?' to view the FAQ."; /* Title for the Jetpack Restore Failed message. */ "Unable to restore your site" = "Impossibile ripristinare il sito"; @@ -7866,6 +7929,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Underline" = "Sottolineato"; /* Button in the notification presented in Reader when a post removed from saved for later + Button title. Reverts a comment moderation action. Button title. Reverts the previous notification operation Revert an operation The title of an 'undo' button. Tapping the button moves a trashed page out of the trash folder. @@ -8524,9 +8588,13 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Blog Writing Settings: Weeks starts on */ "Week starts on" = "La settimana inizia il"; -/* Setting: indicates if the site reports its Weekly Roundup */ +/* Setting: indicates if the site reports its Weekly Roundup + Title of Weekly Roundup push notification */ "Weekly Roundup" = "Resoconto settimanale"; +/* Title of Weekly Roundup push notification. %@ is a placeholder and will be replaced with the title of one of the user's websites. */ +"Weekly Roundup: %@" = "Weekly Roundup: %@"; + /* Title of Weeks stats filter. */ "Weeks" = "Settimane"; @@ -8830,12 +8898,12 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* A text for subtitle label on Login epilogue screen */ "You can switch sites at any time." = "Puoi passare da un sito all'altro in qualsiasi momento."; +/* Prompt shown on the Blogging Reminders Settings screen. */ +"You can update this any time" = "You can update this any time"; + /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "Puoi aggiornare in qualsiasi momento tramite Il mio sito > Impostazioni del sito"; -/* Prompt shown on the Blogging Reminders Settings screen. */ -"You can update this anytime" = "Puoi aggiornare questo elemento in qualsiasi momento"; - /* No comment provided by engineer. */ "You cannot use that email address to signup. We are having problems with them blocking some of our email. Please use another email provider." = "L'indirizzo email che hai inserito non può essere usato per creare l'account. Stiamo avendo problemi con il tuo provider di posta elettronica che blocca le nostre email di attivazione. Si prega di riprovare con un altro indirizzo email."; @@ -9059,6 +9127,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* The default Jetpack view message */ "Your website credentials will not be stored and are used only for the purpose of installing Jetpack." = "Le credenziali del tuo sito web non verranno archiviate e saranno utilizzate solamente per installare Jetpack."; +/* Prompt displayed as part of the stats Weekly Roundup push notification. */ +"Your weekly roundup is ready, tap here to see the details!" = "Your weekly roundup is ready, tap here to see the details!"; + /* Describes the expected behavior when the user disables in-app notifications in Reader Comments. */ "You’re following this conversation. You will receive an email and a notification whenever a new comment is made." = "Stai seguendo questa conversazione. Riceverai una e-mail e una notifica da qualsiasi luogo venga scritto un nuovo commento."; diff --git a/WordPress/Resources/ja.lproj/Localizable.strings b/WordPress/Resources/ja.lproj/Localizable.strings index 26a921dea919..c617698cb747 100644 --- a/WordPress/Resources/ja.lproj/Localizable.strings +++ b/WordPress/Resources/ja.lproj/Localizable.strings @@ -468,7 +468,8 @@ translators: Block name. %s: The localized block name */ /* Label for the Activity Type filter button when there are more than 1 activity type selected */ "Activity Type (%1$d)" = "アクティビティタイプ (%1$d)"; -/* Remove asset from media picker list */ +/* Accessibility label for add button to add items to the user's media library + Remove asset from media picker list */ "Add" = "追加"; /* Action for Media Picker to indicate selection of media. The argument in the string represents the number of elements (as numeric digits) selected */ @@ -564,6 +565,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Add menu item to children" = "子項目としてメニュー項目を追加"; +/* Accessibility hint for add button to add items to the user's media library */ +"Add new media" = "Add new media"; + /* Screen reader text for Menus button that adds a new menu to a site. */ "Add new menu" = "新規メニューを追加"; @@ -704,6 +708,12 @@ translators: Block name. %s: The localized block name */ /* Title of a row displayed on the debug screen used to indicate whether crash logs should be forced to send, even if they otherwise wouldn't */ "Always Send Crash Logs" = "クラッシュログを常に送信"; +/* A failure reason for when an error HTTP status code was returned from the site, with the specific error code. */ +"An HTTP error code %i was returned." = "An HTTP error code %i was returned."; + +/* A failure reason for when an error HTTP status code was returned from the site. */ +"An HTTP error code was returned." = "An HTTP error code was returned."; + /* Error message when loading failed because there's no connection */ "An active internet connection is required" = "アクティブなインターネット接続が必要です"; @@ -756,6 +766,9 @@ translators: Block name. %s: The localized block name */ /* Text displayed when a stat section failed to load. */ "An error occurred." = "エラーが発生しました。"; +/* A failure reason for when the error that occured wasn't able to be determined. */ +"An unknown error occurred." = "An unknown error occurred."; + /* Error message shown when a media upload fails for unknown reason and the user should try again. */ "An unknown error occurred. Please try again." = "不明なエラーが発生しました。もう一度お試しください。"; @@ -817,18 +830,9 @@ translators: Block name. %s: The localized block name */ /* Message prompting the user to confirm that they want to disconnect Jetpack from the site. */ "Are you sure you want to disconnect Jetpack from the site?" = "このサイトから Jetpack の連携を解除してもよいですか ?"; -/* Message asking for confirmation before marking a comment as spam */ -"Are you sure you want to mark this comment as Spam?" = "このコメントをスパムとしてマークしてもよいですか ?"; - -/* Message asking for confirmation before marking a comment as trash */ -"Are you sure you want to mark this comment as Trash?" = "このコメントにゴミ箱に移動とマークしてもよいですか ?"; - /* Message prompting the user to confirm that they want to permanently delete a group of media items. */ "Are you sure you want to permanently delete these items?" = "本当にこれらの項目を永久に削除しますか ?"; -/* Message asking for confirmation on comment deletion */ -"Are you sure you want to permanently delete this comment?" = "このコメントを完全に削除してよいですか ?"; - /* Message prompting the user to confirm that they want to permanently delete a media item. Should match Calypso. */ "Are you sure you want to permanently delete this item?" = "この項目を完全に削除してもよいですか ?"; @@ -1292,6 +1296,9 @@ translators: Block name. %s: The localized block name */ Main title */ "Change Password" = "パスワードの変更"; +/* Title of button that takes user to the system Settings section for the app */ +"Change Settings" = "Change Settings"; + /* Title of an alert prompting the user that they are about to change the blog they are posting to. */ "Change Site" = "サイトを変更"; @@ -1587,6 +1594,9 @@ translators: Block name. %s: The localized block name */ My First Post */ "Comment on" = "コメントする"; +/* Message displayed when approving a comment succeeds. */ +"Comment set to approved." = "Comment set to approved."; + /* Message displayed when pending a comment succeeds. */ "Comment set to pending." = "コメントを保留中に設定しました。"; @@ -1677,8 +1687,7 @@ translators: Block name. %s: The localized block name */ /* Section title for the configure table section in the blog details screen */ "Configure" = "設定"; -/* Confirm - Verb. Title for Jetpack Restore confirm button. */ +/* Verb. Title for Jetpack Restore confirm button. */ "Confirm" = "確認"; /* Close Account alert title */ @@ -2117,7 +2126,8 @@ translators: Block name. %s: The localized block name */ /* Title for the app appearance setting for dark mode */ "Dark" = "ダーク"; -/* Action title. Noun. Opens the user's WordPress.com dashboard in an external browser. */ +/* Action title. Noun. Opens the user's WordPress.com dashboard in an external browser. + Title for dashboard view on the My Site screen */ "Dashboard" = "ダッシュボード"; /* Title for a threat that includes the number of database rows affected */ @@ -2174,7 +2184,6 @@ translators: Block name. %s: The localized block name */ "Defaults for New Posts" = "新しい投稿のデフォルト"; /* Delete - Delete button title Delete button title for the warning shown to the user when he refuses to re-login when the authToken is missing. Title for button that permanently deletes a media item (photo / video) Title for button that permanently deletes one or more media items (photos / videos) @@ -2533,7 +2542,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Each block has its own settings. To find them, tap on a block. Its settings will appear on the toolbar at the bottom of the screen." = "各ブロックには独自の設定があります。 確認するには、ブロックをタップします。 画面下部にあるツールバーに設定が表示されます。"; -/* Edit the post. +/* Accessibility label for edit button to enable multi selection mode in the user's media library + Edit the post. Editing GIF alert default action button. Edits a Comment Edits the comment @@ -2740,6 +2750,9 @@ translators: Block name. %s: The localized block name */ /* Secondary message shown when there are no domains that match the user entered text. */ "Enter different words above and we'll look for an address that matches it." = "上に別の語句を入力してください。一致するアドレスを検索します。"; +/* Accessibility hint for edit button to enable multi selection mode in the user's media library */ +"Enter edit mode to enable multi select to delete" = "Enter edit mode to enable multi select to delete"; + /* (placeholder) Help enter WordPress password Placeholder of a field to type a password to protect the post. */ "Enter password" = "パスワードを入力"; @@ -2790,9 +2803,6 @@ translators: Block name. %s: The localized block name */ /* There was an error activating a plugin, placeholder is the plugin name */ "Error activating %@." = "%@ を有効化する際にエラーが発生しました。"; -/* Message shown when approving a Comment fails. */ -"Error approving comment" = "コメント承認エラー"; - /* Message displayed when approving a comment fails. */ "Error approving comment." = "コメントの承認中にエラーが発生しました。"; @@ -2802,9 +2812,6 @@ translators: Block name. %s: The localized block name */ /* There was an error deactivating a plugin, placeholder is the plugin name */ "Error deactivating %@." = "%@ を無効化する際にエラーが発生しました。"; -/* Message shown when deleting a Comment fails. */ -"Error deleting comment" = "コメント削除エラー"; - /* Message displayed when deleting a comment fails. */ "Error deleting comment." = "コメントの削除中にエラーが発生しました。"; @@ -2832,9 +2839,6 @@ translators: Block name. %s: The localized block name */ /* Messaged displayed when fetching plugins failed. */ "Error loading plugins" = "プラグイン読み込みエラー"; -/* Message shown when marking a Comment as spam fails. */ -"Error marking comment as spam" = "コメントにスパムとマークする際のエラー"; - /* Message displayed when spamming a comment fails. */ "Error marking comment as spam." = "コメントをスパムとしてマーク中にエラーが発生しました。"; @@ -2874,12 +2878,12 @@ translators: Block name. %s: The localized block name */ /* Generic message shown when there was an error trying to re-send email verification. */ "Error sending verification email. Check your connection and try again." = "認証メールの送信中にエラーが発生しました。接続を確認して、もう一度お試しください。"; +/* Message displayed when approving a comment fails. */ +"Error setting comment to approved." = "Error setting comment to approved."; + /* Message displayed when pending a comment fails. */ "Error setting comment to pending." = "コメントを保留中に設定する際にエラーが発生しました。"; -/* Message shown when unapproving a Comment fails. */ -"Error unapproving comment" = "コメント承認解除エラー"; - /* There was an error updating a plugin, placeholder is the plugin name */ "Error updating %@." = "%@ の更新中にエラーが発生しました。"; @@ -3199,6 +3203,9 @@ translators: Block name. %s: The localized block name */ /* Next web page */ "Forward" = "前へ"; +/* No comment provided by engineer. */ +"Four" = "Four"; + /* Browse free themes selection title */ "Free" = "無料"; @@ -3235,6 +3242,9 @@ translators: Block name. %s: The localized block name */ /* translators: accessibility text. %s: gallery caption. */ "Gallery caption. %s" = "ギャラリーオプション。%s"; +/* No comment provided by engineer. */ +"Gallery style" = "Gallery style"; + /* An example tag used in the login prologue screens. */ "Gardening" = "ガーデニング"; @@ -3853,6 +3863,9 @@ translators: Block name. %s: The localized block name */ User's Last Name */ "Last Name" = "姓"; +/* Content of a weekly roundup push notification containing stats about the user's site. The % markers are placeholders and will be replaced by the appropriate number of views, comments, and likes. The numbers indicate the order, so they can be rearranged if necessary – 1 is views, 2 is comments, 3 is likes. */ +"Last week you had %1$d views, %2$d comments and %3$d likes." = "Last week you had %1$d views, %2$d comments and %3$d likes."; + /* Insights latest post summary header */ "Latest Post Summary" = "最新の投稿概要"; @@ -4442,6 +4455,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Navigates to customize the gradient" = "グラデーションのカスタマイズへ移動"; +/* No comment provided by engineer. */ +"Navigates to layout selection screen" = "Navigates to layout selection screen"; + /* translators: %s: Select control button label e.g. Small translators: %s: Select control button label e.g. \"Button width\" */ "Navigates to select %s" = "移動して%sを選択"; @@ -4513,6 +4529,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Table view title for the quick start section. */ "Next Steps" = "次のステップ"; +/* Accessibility label for the button which shows the previous month in the monthly calendar view */ +"Next month" = "Next month"; + /* Accessibility label for the next notification button */ "Next notification" = "次の通知"; @@ -4611,6 +4630,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ Text shown when there is no data to display in the stats list view. */ "No data yet" = "データはまだありません"; +/* Accessibility label for no currently selected range. */ +"No date range selected" = "No date range selected"; + /* Title for the view when there aren't any fixed threats to display */ "No fixed threats" = "修正された脅威はありません"; @@ -4886,12 +4908,18 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* A subtitle with more detailed info for the user when no WordPress.com sites could be found. */ "Once you create a WordPress.com site, you can reblog content that you like to your own site." = "WordPress.com サイトの作成後は、お気に入りのコンテンツを自分のサイトにリブログできます。"; +/* No comment provided by engineer. */ +"One" = "One"; + /* Subtitle displayed when the user has removed all Insights from display. */ "Only see the most relevant stats. Add insights to fit your needs." = "最も関連の深い統計情報のみを表示します。ニーズに合った統計概要を追加します。"; /* No comment provided by engineer. */ "Only show excerpt" = "抜粋のみを表示"; +/* Message telling the user that they've only enabled limited photo library permissions for the app. */ +"Only the selected photos you've given access to are available." = "Only the selected photos you've given access to are available."; + /* An informal exclaimation that means `something went wrong`. Title for the view when there's an error loading Activity Log Title for the view when there's an error loading scan status @@ -5478,6 +5506,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Description of a Quick Start Tour */ "Preview your new site to see what your visitors will see." = "新しいサイトをプレビューして訪問者に表示される内容を確認できます。"; +/* Accessibility label for the button which shows the previous month in the monthly calendar view */ +"Previous month" = "Previous month"; + /* Accessibility label for the previous notification button */ "Previous notification" = "前の通知"; @@ -5775,7 +5806,7 @@ translators: %s: Select control button label e.g. \"Button width\" */ "Remove Site Icon" = "サイトアイコンを削除"; /* No comment provided by engineer. */ -"Remove as Featured Image " = "アイキャッチ画像を削除 "; +"Remove as Featured Image" = "Remove as Featured Image"; /* No comment provided by engineer. */ "Remove block" = "ブロックを削除"; @@ -6235,6 +6266,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Register Domain - Domain contact information field placeholder for Country */ "Select Country" = "国名を選択"; +/* Title of button that allows the user to select more photos to access within the app */ +"Select More" = "Select More"; + /* Blog Picker's Title */ "Select Site" = "サイトを選択"; @@ -6298,6 +6332,12 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Error message when user tries a no longer existent video media object. */ "Selected media is unavailable." = "選択したメディアがありません。"; +/* Accessibility label for summary of currently single date. %1$@ is the date */ +"Selected range: %1$@ only" = "Selected range: %1$@ only"; + +/* Accessibility label for summary of currently selected range. %1$@ is the start date, %2$@ is the end date. */ +"Selected range: %1$@ to %2$@" = "Selected range: %1$@ to %2$@"; + /* translators: %s: Select font size option value e.g: \"Selected: Large\". translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Selected: %s" = "選択済み: %s"; @@ -6358,7 +6398,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Set Parent" = "親の設定"; /* No comment provided by engineer. */ -"Set as Featured Image " = "アイキャッチ画像として設定"; +"Set as Featured Image" = "Set as Featured Image"; /* Label for a button that sets the selected page as the site's Homepage */ "Set as Homepage" = "ホームページに設定する"; @@ -6576,6 +6616,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Title for the Language Picker View */ "Site Language" = "サイトの言語"; +/* Title for the site menu view on the My Site screen */ +"Site Menu" = "Site Menu"; + /* Describes a site redirect domain */ "Site Redirect" = "サイト転送"; @@ -6763,7 +6806,6 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Button title for Spam comment state. Marks comment as spam. - Spam Title of spam Comments filter. */ "Spam" = "スパム"; @@ -7106,7 +7148,8 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Description shown when a user logs in with Google but no matching WordPress.com account is found */ "The Google account \"%@\" doesn't match any account on WordPress.com" = "Google アカウント「%@」が WordPress.com のアカウントと一致しません"; -/* Message of error prompt shown when a user tries to perform an action without an internet connection. */ +/* Error message shown when a media upload fails because the user isn't connected to the Internet. + Message of error prompt shown when a user tries to perform an action without an internet connection. */ "The Internet connection appears to be offline." = "インターネットに接続していないようです。"; /* Message informing the user that the site title can only be changed by an administrator user. */ @@ -7145,8 +7188,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Message shown when an image failed to load while trying to add it to the Media library. */ "The image could not be added to the Media Library." = "画像をメディアライブラリに追加できませんでした。"; -/* Error message shown when a media upload fails because the user isn't connected to the internet. - Message of error prompt shown when a user tries to perform an action without an internet connection. */ +/* Message of error prompt shown when a user tries to perform an action without an internet connection. */ "The internet connection appears to be offline." = "インターネットに接続されていないようです。"; /* Message shown when an asset failed to load while trying to add it to the Media library. */ @@ -7182,6 +7224,12 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Description shown in alert to confirm skipping all quick start items */ "The quick start tour will guide you through building a basic site. Are you sure you want to skip? " = "クイックスタートツアーでは、ベーシックサイトの作成方法を説明します。スキップしてもよいですか ?"; +/* A failure reason for when the request couldn't be serialized. */ +"The serialization of the request failed." = "The serialization of the request failed."; + +/* A failure reason for when the response couldn't be serialized. */ +"The serialization of the response failed." = "The serialization of the response failed."; + /* No comment provided by engineer. */ "The server returned an empty response. This usually means you need to increase the memory limit for your site." = "サーバーが空のレスポンスを返しました。これは通常、サイトのメモリ上限を上げる必要があることを意味しています。"; @@ -7282,6 +7330,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Error message informing the user that there was a problem blocking posts from a site from their reader. */ "There was a problem blocking posts from the specified site." = "指定のサイトからの投稿をブロックする際に問題が発生しました。"; +/* A general error message shown to the user when there was an API communication failure. */ +"There was a problem communicating with the site." = "There was a problem communicating with the site."; + /* Message for the warning shown to the user when the app realizes there should be an auth token but there isn't one. */ "There was a problem connecting to WordPress.com. Please log in again." = "WordPress.com へ接続する際に問題が発生しました。もう一度ログインしてください。"; @@ -7450,12 +7501,18 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Message displayed when a threat is ignored successfully. */ "Threat ignored." = "脅威を無視しました。"; +/* No comment provided by engineer. */ +"Three" = "Three"; + /* Thumbnail image size. Should be the same as in core WP. */ "Thumbnail" = "サムネイル"; /* Message shown if a thumbnail preview of a media item unavailable. */ "Thumbnail unavailable." = "サムネールが表示できません。"; +/* No comment provided by engineer. */ +"Tiled gallery settings" = "Tiled gallery settings"; + /* Blog Writing Settings: Time Format Writing Time Format Settings Title */ "Time Format" = "時刻フォーマット"; @@ -7600,13 +7657,16 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* No comment provided by engineer. */ "Transform block…" = "ブロックを変換…"; -/* Accessibility label for trash buttons in nav bars +/* Accessibility label for trash button to delete items from the user's media library + Accessibility label for trash buttons in nav bars Button title for Trash comment state. - Trash button title Trashes a comment Trashes the comment */ "Trash" = "ゴミ箱"; +/* Accessibility hint for trash button to delete items from the user's media library */ +"Trash selected media" = "Trash selected media"; + /* Title of the trash page confirmation alert. */ "Trash this page?" = "このページをゴミ箱に移動しますか ?"; @@ -7687,6 +7747,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Title for the setting to edit the twitter username used when sharing to twitter. */ "Twitter Username" = "Twitter ユーザー名"; +/* No comment provided by engineer. */ +"Two" = "Two"; + /* Type menu item in share extension. */ "Type" = "タイプ"; @@ -7783,7 +7846,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Unable to play video" = "動画を再生できません"; /* No comment provided by engineer. */ -"Unable to read the WordPress site at that URL. Tap 'Need Help?' to view the FAQ." = "ご指定の URL に WordPress サイトが見つかりませんでした。「ヘルプ !」をタップしてよくある質問をご覧ください。"; +"Unable to read the WordPress site at that URL. Tap 'Need more help?' to view the FAQ." = "Unable to read the WordPress site at that URL. Tap 'Need more help?' to view the FAQ."; /* Title for the Jetpack Restore Failed message. */ "Unable to restore your site" = "サイトを復元できません"; @@ -7866,6 +7929,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Underline" = "下線"; /* Button in the notification presented in Reader when a post removed from saved for later + Button title. Reverts a comment moderation action. Button title. Reverts the previous notification operation Revert an operation The title of an 'undo' button. Tapping the button moves a trashed page out of the trash folder. @@ -8524,9 +8588,13 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Blog Writing Settings: Weeks starts on */ "Week starts on" = "週の最初の曜日"; -/* Setting: indicates if the site reports its Weekly Roundup */ +/* Setting: indicates if the site reports its Weekly Roundup + Title of Weekly Roundup push notification */ "Weekly Roundup" = "1週間のまとめ"; +/* Title of Weekly Roundup push notification. %@ is a placeholder and will be replaced with the title of one of the user's websites. */ +"Weekly Roundup: %@" = "Weekly Roundup: %@"; + /* Title of Weeks stats filter. */ "Weeks" = "週"; @@ -8830,12 +8898,12 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* A text for subtitle label on Login epilogue screen */ "You can switch sites at any time." = "サイトはいつでも切り替えることができます。"; +/* Prompt shown on the Blogging Reminders Settings screen. */ +"You can update this any time" = "You can update this any time"; + /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "この設定は、「参加サイト」→「サイト設定」でいつでも変更できます。"; -/* Prompt shown on the Blogging Reminders Settings screen. */ -"You can update this anytime" = "これはいつでも更新できます"; - /* No comment provided by engineer. */ "You cannot use that email address to signup. We are having problems with them blocking some of our email. Please use another email provider." = "ご指定のメールアドレスはアカウント登録にご利用いただけません。このメールプロバイダによって、こちらから送信するメールがブロックされる問題が発生することがあるためです。恐れ入りますが、他のメールプロバイダのアドレスをお使いください。"; @@ -9059,6 +9127,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* The default Jetpack view message */ "Your website credentials will not be stored and are used only for the purpose of installing Jetpack." = "サイトの証明書は保存されず、Jetpack インストールの目的のみに使用されます。"; +/* Prompt displayed as part of the stats Weekly Roundup push notification. */ +"Your weekly roundup is ready, tap here to see the details!" = "Your weekly roundup is ready, tap here to see the details!"; + /* Describes the expected behavior when the user disables in-app notifications in Reader Comments. */ "You’re following this conversation. You will receive an email and a notification whenever a new comment is made." = "この会話をフォロー中です。 新しいコメントが投稿されると、メールと通知が届きます。"; diff --git a/WordPress/Resources/ko.lproj/Localizable.strings b/WordPress/Resources/ko.lproj/Localizable.strings index a062a6fd2a58..77c82d842144 100644 --- a/WordPress/Resources/ko.lproj/Localizable.strings +++ b/WordPress/Resources/ko.lproj/Localizable.strings @@ -468,7 +468,8 @@ translators: Block name. %s: The localized block name */ /* Label for the Activity Type filter button when there are more than 1 activity type selected */ "Activity Type (%1$d)" = "활동 유형 (%1$d)"; -/* Remove asset from media picker list */ +/* Accessibility label for add button to add items to the user's media library + Remove asset from media picker list */ "Add" = "추가"; /* Action for Media Picker to indicate selection of media. The argument in the string represents the number of elements (as numeric digits) selected */ @@ -564,6 +565,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Add menu item to children" = "메뉴 항목을 하위 항목에 추가"; +/* Accessibility hint for add button to add items to the user's media library */ +"Add new media" = "Add new media"; + /* Screen reader text for Menus button that adds a new menu to a site. */ "Add new menu" = "새 메뉴 추가하기"; @@ -704,6 +708,12 @@ translators: Block name. %s: The localized block name */ /* Title of a row displayed on the debug screen used to indicate whether crash logs should be forced to send, even if they otherwise wouldn't */ "Always Send Crash Logs" = "언제나 충돌 기록 보내기"; +/* A failure reason for when an error HTTP status code was returned from the site, with the specific error code. */ +"An HTTP error code %i was returned." = "An HTTP error code %i was returned."; + +/* A failure reason for when an error HTTP status code was returned from the site. */ +"An HTTP error code was returned." = "An HTTP error code was returned."; + /* Error message when loading failed because there's no connection */ "An active internet connection is required" = "인터넷에 연결되어야 합니다."; @@ -756,6 +766,9 @@ translators: Block name. %s: The localized block name */ /* Text displayed when a stat section failed to load. */ "An error occurred." = "오류가 발생 했습니다."; +/* A failure reason for when the error that occured wasn't able to be determined. */ +"An unknown error occurred." = "An unknown error occurred."; + /* Error message shown when a media upload fails for unknown reason and the user should try again. */ "An unknown error occurred. Please try again." = "알 수 없는 오류가 발생했습니다. 다시 시도하세요."; @@ -817,18 +830,9 @@ translators: Block name. %s: The localized block name */ /* Message prompting the user to confirm that they want to disconnect Jetpack from the site. */ "Are you sure you want to disconnect Jetpack from the site?" = "사이트에서 젯팩 연결을 해제하시겠어요?"; -/* Message asking for confirmation before marking a comment as spam */ -"Are you sure you want to mark this comment as Spam?" = "이 댓글을 스팸으로 표시하시겠어요?"; - -/* Message asking for confirmation before marking a comment as trash */ -"Are you sure you want to mark this comment as Trash?" = "이 댓글을 휴지통으로 표시하시겠어요?"; - /* Message prompting the user to confirm that they want to permanently delete a group of media items. */ "Are you sure you want to permanently delete these items?" = "선택한 항목을 영구 삭제하시겠습니까?"; -/* Message asking for confirmation on comment deletion */ -"Are you sure you want to permanently delete this comment?" = "이 댓글을 영구적으로 삭제하시겠어요?"; - /* Message prompting the user to confirm that they want to permanently delete a media item. Should match Calypso. */ "Are you sure you want to permanently delete this item?" = "이 항목을 영구적으로 삭제하시겠습니까?"; @@ -1292,6 +1296,9 @@ translators: Block name. %s: The localized block name */ Main title */ "Change Password" = "비밀번호 변경"; +/* Title of button that takes user to the system Settings section for the app */ +"Change Settings" = "Change Settings"; + /* Title of an alert prompting the user that they are about to change the blog they are posting to. */ "Change Site" = "사이트 변경"; @@ -1587,6 +1594,9 @@ translators: Block name. %s: The localized block name */ My First Post */ "Comment on" = "댓글"; +/* Message displayed when approving a comment succeeds. */ +"Comment set to approved." = "Comment set to approved."; + /* Message displayed when pending a comment succeeds. */ "Comment set to pending." = "댓글이 대기 중으로 설정되었습니다."; @@ -1677,8 +1687,7 @@ translators: Block name. %s: The localized block name */ /* Section title for the configure table section in the blog details screen */ "Configure" = "환경설정"; -/* Confirm - Verb. Title for Jetpack Restore confirm button. */ +/* Verb. Title for Jetpack Restore confirm button. */ "Confirm" = "확인"; /* Close Account alert title */ @@ -2117,7 +2126,8 @@ translators: Block name. %s: The localized block name */ /* Title for the app appearance setting for dark mode */ "Dark" = "검정"; -/* Action title. Noun. Opens the user's WordPress.com dashboard in an external browser. */ +/* Action title. Noun. Opens the user's WordPress.com dashboard in an external browser. + Title for dashboard view on the My Site screen */ "Dashboard" = "알림판"; /* Title for a threat that includes the number of database rows affected */ @@ -2174,7 +2184,6 @@ translators: Block name. %s: The localized block name */ "Defaults for New Posts" = "새 글의 기본값"; /* Delete - Delete button title Delete button title for the warning shown to the user when he refuses to re-login when the authToken is missing. Title for button that permanently deletes a media item (photo / video) Title for button that permanently deletes one or more media items (photos / videos) @@ -2533,7 +2542,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Each block has its own settings. To find them, tap on a block. Its settings will appear on the toolbar at the bottom of the screen." = "각 블록에는 자체 설정이 있습니다. 설정을 찾으려면 블록을 누르세요. 화면 하단의 도구 모음에 해당 설정이 표시됩니다."; -/* Edit the post. +/* Accessibility label for edit button to enable multi selection mode in the user's media library + Edit the post. Editing GIF alert default action button. Edits a Comment Edits the comment @@ -2740,6 +2750,9 @@ translators: Block name. %s: The localized block name */ /* Secondary message shown when there are no domains that match the user entered text. */ "Enter different words above and we'll look for an address that matches it." = "위에 다른 단어를 입력하면 일치하는 주소를 찾겠습니다."; +/* Accessibility hint for edit button to enable multi selection mode in the user's media library */ +"Enter edit mode to enable multi select to delete" = "Enter edit mode to enable multi select to delete"; + /* (placeholder) Help enter WordPress password Placeholder of a field to type a password to protect the post. */ "Enter password" = "비밀번호 입력"; @@ -2790,9 +2803,6 @@ translators: Block name. %s: The localized block name */ /* There was an error activating a plugin, placeholder is the plugin name */ "Error activating %@." = "%@을(를) 활성화하는 중 오류가 발생했습니다."; -/* Message shown when approving a Comment fails. */ -"Error approving comment" = "댓글 증인 중 오류 발생"; - /* Message displayed when approving a comment fails. */ "Error approving comment." = "댓글 승인 중 오류가 발생했습니다."; @@ -2802,9 +2812,6 @@ translators: Block name. %s: The localized block name */ /* There was an error deactivating a plugin, placeholder is the plugin name */ "Error deactivating %@." = "%@을(를) 비활성화하는 중 오류가 발생했습니다."; -/* Message shown when deleting a Comment fails. */ -"Error deleting comment" = "댓글 삭제 중 오류 발생"; - /* Message displayed when deleting a comment fails. */ "Error deleting comment." = "댓글 삭제 중 오류가 발생했습니다."; @@ -2832,9 +2839,6 @@ translators: Block name. %s: The localized block name */ /* Messaged displayed when fetching plugins failed. */ "Error loading plugins" = "플러그인 로드 중 오류가 발생했습니다."; -/* Message shown when marking a Comment as spam fails. */ -"Error marking comment as spam" = "댓글을 스팸으로 표시 중 오류 발생"; - /* Message displayed when spamming a comment fails. */ "Error marking comment as spam." = "댓글을 스팸으로 표시하는 중 오류가 발생했습니다."; @@ -2874,12 +2878,12 @@ translators: Block name. %s: The localized block name */ /* Generic message shown when there was an error trying to re-send email verification. */ "Error sending verification email. Check your connection and try again." = "확인 이메일을 보내는 중 오류가 발생했습니다. 연결을 확인하고 다시 시도하세요."; +/* Message displayed when approving a comment fails. */ +"Error setting comment to approved." = "Error setting comment to approved."; + /* Message displayed when pending a comment fails. */ "Error setting comment to pending." = "댓글을 대기 중으로 설정하는 중 오류가 발생했습니다."; -/* Message shown when unapproving a Comment fails. */ -"Error unapproving comment" = "댓글 승인 취소 중 오류 발생"; - /* There was an error updating a plugin, placeholder is the plugin name */ "Error updating %@." = "%@ 업데이트 중 오류가 발생했습니다."; @@ -3199,6 +3203,9 @@ translators: Block name. %s: The localized block name */ /* Next web page */ "Forward" = "전달"; +/* No comment provided by engineer. */ +"Four" = "Four"; + /* Browse free themes selection title */ "Free" = "무료"; @@ -3235,6 +3242,9 @@ translators: Block name. %s: The localized block name */ /* translators: accessibility text. %s: gallery caption. */ "Gallery caption. %s" = "갤러리 캡션. %s"; +/* No comment provided by engineer. */ +"Gallery style" = "Gallery style"; + /* An example tag used in the login prologue screens. */ "Gardening" = "원예"; @@ -3853,6 +3863,9 @@ translators: Block name. %s: The localized block name */ User's Last Name */ "Last Name" = "성"; +/* Content of a weekly roundup push notification containing stats about the user's site. The % markers are placeholders and will be replaced by the appropriate number of views, comments, and likes. The numbers indicate the order, so they can be rearranged if necessary – 1 is views, 2 is comments, 3 is likes. */ +"Last week you had %1$d views, %2$d comments and %3$d likes." = "Last week you had %1$d views, %2$d comments and %3$d likes."; + /* Insights latest post summary header */ "Latest Post Summary" = "최신 글 요약"; @@ -4442,6 +4455,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Navigates to customize the gradient" = "사용자 정의 그라디언트로 가기"; +/* No comment provided by engineer. */ +"Navigates to layout selection screen" = "Navigates to layout selection screen"; + /* translators: %s: Select control button label e.g. Small translators: %s: Select control button label e.g. \"Button width\" */ "Navigates to select %s" = "%s 선택으로 이동"; @@ -4513,6 +4529,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Table view title for the quick start section. */ "Next Steps" = "다음 단계"; +/* Accessibility label for the button which shows the previous month in the monthly calendar view */ +"Next month" = "Next month"; + /* Accessibility label for the next notification button */ "Next notification" = "다음 알림"; @@ -4611,6 +4630,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ Text shown when there is no data to display in the stats list view. */ "No data yet" = "아직 데이터 없음"; +/* Accessibility label for no currently selected range. */ +"No date range selected" = "No date range selected"; + /* Title for the view when there aren't any fixed threats to display */ "No fixed threats" = "해결된 위협 없음"; @@ -4886,12 +4908,18 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* A subtitle with more detailed info for the user when no WordPress.com sites could be found. */ "Once you create a WordPress.com site, you can reblog content that you like to your own site." = "워드프레스닷컴 사이트를 만든 후 원하는 콘텐츠를 자신의 사이트로 리블로그할 수 있습니다."; +/* No comment provided by engineer. */ +"One" = "One"; + /* Subtitle displayed when the user has removed all Insights from display. */ "Only see the most relevant stats. Add insights to fit your needs." = "가장 관련성 높은 통계만 확인하세요. 필요에 맞게 인사이트를 추가하세요."; /* No comment provided by engineer. */ "Only show excerpt" = "요악문만 표시"; +/* Message telling the user that they've only enabled limited photo library permissions for the app. */ +"Only the selected photos you've given access to are available." = "Only the selected photos you've given access to are available."; + /* An informal exclaimation that means `something went wrong`. Title for the view when there's an error loading Activity Log Title for the view when there's an error loading scan status @@ -5478,6 +5506,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Description of a Quick Start Tour */ "Preview your new site to see what your visitors will see." = "새 사이트를 미리 보고 방문자에게 어떤 것이 표시되는지 확인하세요."; +/* Accessibility label for the button which shows the previous month in the monthly calendar view */ +"Previous month" = "Previous month"; + /* Accessibility label for the previous notification button */ "Previous notification" = "이전 알림"; @@ -5775,7 +5806,7 @@ translators: %s: Select control button label e.g. \"Button width\" */ "Remove Site Icon" = "사이트 아이콘 제거"; /* No comment provided by engineer. */ -"Remove as Featured Image " = "특성 이미지 제거 "; +"Remove as Featured Image" = "Remove as Featured Image"; /* No comment provided by engineer. */ "Remove block" = "블록 제거하기"; @@ -6235,6 +6266,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Register Domain - Domain contact information field placeholder for Country */ "Select Country" = "국가 선택"; +/* Title of button that allows the user to select more photos to access within the app */ +"Select More" = "Select More"; + /* Blog Picker's Title */ "Select Site" = "사이트 선택"; @@ -6298,6 +6332,12 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Error message when user tries a no longer existent video media object. */ "Selected media is unavailable." = "선택한 미디어를 사용할 수 없습니다."; +/* Accessibility label for summary of currently single date. %1$@ is the date */ +"Selected range: %1$@ only" = "Selected range: %1$@ only"; + +/* Accessibility label for summary of currently selected range. %1$@ is the start date, %2$@ is the end date. */ +"Selected range: %1$@ to %2$@" = "Selected range: %1$@ to %2$@"; + /* translators: %s: Select font size option value e.g: \"Selected: Large\". translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Selected: %s" = "선택됨: %s"; @@ -6358,7 +6398,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Set Parent" = "상위 항목 설정"; /* No comment provided by engineer. */ -"Set as Featured Image " = "특성 이미지로 설정 "; +"Set as Featured Image" = "Set as Featured Image"; /* Label for a button that sets the selected page as the site's Homepage */ "Set as Homepage" = "홈페이지로 설정"; @@ -6576,6 +6616,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Title for the Language Picker View */ "Site Language" = "사이트 언어"; +/* Title for the site menu view on the My Site screen */ +"Site Menu" = "Site Menu"; + /* Describes a site redirect domain */ "Site Redirect" = "사이트 리디렉팅"; @@ -6763,7 +6806,6 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Button title for Spam comment state. Marks comment as spam. - Spam Title of spam Comments filter. */ "Spam" = "스팸"; @@ -7106,7 +7148,8 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Description shown when a user logs in with Google but no matching WordPress.com account is found */ "The Google account \"%@\" doesn't match any account on WordPress.com" = "Google 계정 \"%@\"이(가) 워드프레스닷컴의 계정과 일치하지 않습니다."; -/* Message of error prompt shown when a user tries to perform an action without an internet connection. */ +/* Error message shown when a media upload fails because the user isn't connected to the Internet. + Message of error prompt shown when a user tries to perform an action without an internet connection. */ "The Internet connection appears to be offline." = "인터넷 연결이 오프라인인 것 같습니다."; /* Message informing the user that the site title can only be changed by an administrator user. */ @@ -7145,8 +7188,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Message shown when an image failed to load while trying to add it to the Media library. */ "The image could not be added to the Media Library." = "이미지를 미디어 라이브러리에 추가할 수 없었습니다."; -/* Error message shown when a media upload fails because the user isn't connected to the internet. - Message of error prompt shown when a user tries to perform an action without an internet connection. */ +/* Message of error prompt shown when a user tries to perform an action without an internet connection. */ "The internet connection appears to be offline." = "인터넷 연결이 오프라인인 것 같습니다."; /* Message shown when an asset failed to load while trying to add it to the Media library. */ @@ -7182,6 +7224,12 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Description shown in alert to confirm skipping all quick start items */ "The quick start tour will guide you through building a basic site. Are you sure you want to skip? " = "퀵 스타트 투어에서는 기본 사이트 구축에 대해 안내합니다. 건너뛰시겠습니까? "; +/* A failure reason for when the request couldn't be serialized. */ +"The serialization of the request failed." = "The serialization of the request failed."; + +/* A failure reason for when the response couldn't be serialized. */ +"The serialization of the response failed." = "The serialization of the response failed."; + /* No comment provided by engineer. */ "The server returned an empty response. This usually means you need to increase the memory limit for your site." = "서버에서 응답이 없습니다. 이는 일반적으로 사이트에 대한 메모리 제한을 늘려야 한다는 뜻입니다."; @@ -7282,6 +7330,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Error message informing the user that there was a problem blocking posts from a site from their reader. */ "There was a problem blocking posts from the specified site." = "지정된 사이트에서 게시물 차단 중 문제가 발생했습니다."; +/* A general error message shown to the user when there was an API communication failure. */ +"There was a problem communicating with the site." = "There was a problem communicating with the site."; + /* Message for the warning shown to the user when the app realizes there should be an auth token but there isn't one. */ "There was a problem connecting to WordPress.com. Please log in again." = "워드프레스닷컴에 연결하는 중 문제가 발생했습니다. 다시 로그인해주세요."; @@ -7450,12 +7501,18 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Message displayed when a threat is ignored successfully. */ "Threat ignored." = "위협이 무시되었습니다."; +/* No comment provided by engineer. */ +"Three" = "Three"; + /* Thumbnail image size. Should be the same as in core WP. */ "Thumbnail" = "썸네일"; /* Message shown if a thumbnail preview of a media item unavailable. */ "Thumbnail unavailable." = "썸네일을 사용할 수 없습니다."; +/* No comment provided by engineer. */ +"Tiled gallery settings" = "Tiled gallery settings"; + /* Blog Writing Settings: Time Format Writing Time Format Settings Title */ "Time Format" = "시간 형식"; @@ -7600,13 +7657,16 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* No comment provided by engineer. */ "Transform block…" = "블록 변형…"; -/* Accessibility label for trash buttons in nav bars +/* Accessibility label for trash button to delete items from the user's media library + Accessibility label for trash buttons in nav bars Button title for Trash comment state. - Trash button title Trashes a comment Trashes the comment */ "Trash" = "휴지통"; +/* Accessibility hint for trash button to delete items from the user's media library */ +"Trash selected media" = "Trash selected media"; + /* Title of the trash page confirmation alert. */ "Trash this page?" = "이 페이지를 휴지통으로 이동할까요?"; @@ -7687,6 +7747,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Title for the setting to edit the twitter username used when sharing to twitter. */ "Twitter Username" = "Twitter 사용자명"; +/* No comment provided by engineer. */ +"Two" = "Two"; + /* Type menu item in share extension. */ "Type" = "유형"; @@ -7783,7 +7846,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Unable to play video" = "비디오를 재생할 수 없음"; /* No comment provided by engineer. */ -"Unable to read the WordPress site at that URL. Tap 'Need Help?' to view the FAQ." = "해당 URL에서 워드프레스 사이트를 읽을 수 없습니다. '도움이 필요하세요?'를 눌러 FAQ를 보세요."; +"Unable to read the WordPress site at that URL. Tap 'Need more help?' to view the FAQ." = "Unable to read the WordPress site at that URL. Tap 'Need more help?' to view the FAQ."; /* Title for the Jetpack Restore Failed message. */ "Unable to restore your site" = "사이트를 복원할 수 없음"; @@ -7866,6 +7929,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Underline" = "밑줄"; /* Button in the notification presented in Reader when a post removed from saved for later + Button title. Reverts a comment moderation action. Button title. Reverts the previous notification operation Revert an operation The title of an 'undo' button. Tapping the button moves a trashed page out of the trash folder. @@ -8524,9 +8588,13 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Blog Writing Settings: Weeks starts on */ "Week starts on" = "시작 요일"; -/* Setting: indicates if the site reports its Weekly Roundup */ +/* Setting: indicates if the site reports its Weekly Roundup + Title of Weekly Roundup push notification */ "Weekly Roundup" = "주간 종합"; +/* Title of Weekly Roundup push notification. %@ is a placeholder and will be replaced with the title of one of the user's websites. */ +"Weekly Roundup: %@" = "Weekly Roundup: %@"; + /* Title of Weeks stats filter. */ "Weeks" = "주"; @@ -8830,12 +8898,12 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* A text for subtitle label on Login epilogue screen */ "You can switch sites at any time." = "언제든지 사이트를 전환할 수 있습니다."; +/* Prompt shown on the Blogging Reminders Settings screen. */ +"You can update this any time" = "You can update this any time"; + /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "내 사이트 > 사이트 설정에서 언제든지 업데이트할 수 있습니다."; -/* Prompt shown on the Blogging Reminders Settings screen. */ -"You can update this anytime" = "언제든지 업데이트할 수 있습니다."; - /* No comment provided by engineer. */ "You cannot use that email address to signup. We are having problems with them blocking some of our email. Please use another email provider." = "해당 이메일 주소를 회원가입하는데 사용할 수 없습니다. 우리의 이메일을 차단하는 문제를 일으킵니다. 다른 이메일 제공자를 사용하세요."; @@ -9059,6 +9127,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* The default Jetpack view message */ "Your website credentials will not be stored and are used only for the purpose of installing Jetpack." = "웹사이트 자격 증명은 저장되지 않으며 젯팩을 설치하는 용도로만 사용됩니다."; +/* Prompt displayed as part of the stats Weekly Roundup push notification. */ +"Your weekly roundup is ready, tap here to see the details!" = "Your weekly roundup is ready, tap here to see the details!"; + /* Describes the expected behavior when the user disables in-app notifications in Reader Comments. */ "You’re following this conversation. You will receive an email and a notification whenever a new comment is made." = "이 대화를 팔로우하는 중입니다. 새 댓글이 작성될 때마다 이메일과 알림이 수신됩니다."; diff --git a/WordPress/Resources/nb.lproj/Localizable.strings b/WordPress/Resources/nb.lproj/Localizable.strings index bd257bc82ddf..ed9a9df6b9b9 100644 --- a/WordPress/Resources/nb.lproj/Localizable.strings +++ b/WordPress/Resources/nb.lproj/Localizable.strings @@ -468,7 +468,8 @@ translators: Block name. %s: The localized block name */ /* Label for the Activity Type filter button when there are more than 1 activity type selected */ "Activity Type (%1$d)" = "Activity Type (%1$d)"; -/* Remove asset from media picker list */ +/* Accessibility label for add button to add items to the user's media library + Remove asset from media picker list */ "Add" = "Legg til"; /* Action for Media Picker to indicate selection of media. The argument in the string represents the number of elements (as numeric digits) selected */ @@ -564,6 +565,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Add menu item to children" = "Legg til menyobjekt i undermeny"; +/* Accessibility hint for add button to add items to the user's media library */ +"Add new media" = "Add new media"; + /* Screen reader text for Menus button that adds a new menu to a site. */ "Add new menu" = "Legg til ny meny"; @@ -704,6 +708,12 @@ translators: Block name. %s: The localized block name */ /* Title of a row displayed on the debug screen used to indicate whether crash logs should be forced to send, even if they otherwise wouldn't */ "Always Send Crash Logs" = "Alltid send krasjlogger"; +/* A failure reason for when an error HTTP status code was returned from the site, with the specific error code. */ +"An HTTP error code %i was returned." = "An HTTP error code %i was returned."; + +/* A failure reason for when an error HTTP status code was returned from the site. */ +"An HTTP error code was returned." = "An HTTP error code was returned."; + /* Error message when loading failed because there's no connection */ "An active internet connection is required" = "En aktiv internettilkobling er påkrevd"; @@ -756,6 +766,9 @@ translators: Block name. %s: The localized block name */ /* Text displayed when a stat section failed to load. */ "An error occurred." = "En feil oppsto."; +/* A failure reason for when the error that occured wasn't able to be determined. */ +"An unknown error occurred." = "An unknown error occurred."; + /* Error message shown when a media upload fails for unknown reason and the user should try again. */ "An unknown error occurred. Please try again." = "En ukjent feil oppstod. Vennligst prøv igjen."; @@ -817,18 +830,9 @@ translators: Block name. %s: The localized block name */ /* Message prompting the user to confirm that they want to disconnect Jetpack from the site. */ "Are you sure you want to disconnect Jetpack from the site?" = "Er du sikker på at du vil koble fra Jetpack fra denne siden?"; -/* Message asking for confirmation before marking a comment as spam */ -"Are you sure you want to mark this comment as Spam?" = "Er du sikker på at du vil merke kommentaren som useriøs?"; - -/* Message asking for confirmation before marking a comment as trash */ -"Are you sure you want to mark this comment as Trash?" = "Er du sikker på at du vil kaste kommentaren?"; - /* Message prompting the user to confirm that they want to permanently delete a group of media items. */ "Are you sure you want to permanently delete these items?" = "Er du sikker på at du vil slette disse objektene permanent?"; -/* Message asking for confirmation on comment deletion */ -"Are you sure you want to permanently delete this comment?" = "Er du sikker på at du vil slette denne kommentaren permanent?"; - /* Message prompting the user to confirm that they want to permanently delete a media item. Should match Calypso. */ "Are you sure you want to permanently delete this item?" = "Er du sikker på at du vil slette dette objektet permanent?"; @@ -1292,6 +1296,9 @@ translators: Block name. %s: The localized block name */ Main title */ "Change Password" = "Endre passord"; +/* Title of button that takes user to the system Settings section for the app */ +"Change Settings" = "Change Settings"; + /* Title of an alert prompting the user that they are about to change the blog they are posting to. */ "Change Site" = "Bytte nettsted"; @@ -1587,6 +1594,9 @@ translators: Block name. %s: The localized block name */ My First Post */ "Comment on" = "Comment on"; +/* Message displayed when approving a comment succeeds. */ +"Comment set to approved." = "Comment set to approved."; + /* Message displayed when pending a comment succeeds. */ "Comment set to pending." = "Comment set to pending."; @@ -1677,8 +1687,7 @@ translators: Block name. %s: The localized block name */ /* Section title for the configure table section in the blog details screen */ "Configure" = "Konfigurer"; -/* Confirm - Verb. Title for Jetpack Restore confirm button. */ +/* Verb. Title for Jetpack Restore confirm button. */ "Confirm" = "Bekreft"; /* Close Account alert title */ @@ -2117,7 +2126,8 @@ translators: Block name. %s: The localized block name */ /* Title for the app appearance setting for dark mode */ "Dark" = "Mørk"; -/* Action title. Noun. Opens the user's WordPress.com dashboard in an external browser. */ +/* Action title. Noun. Opens the user's WordPress.com dashboard in an external browser. + Title for dashboard view on the My Site screen */ "Dashboard" = "Kontrollpanel"; /* Title for a threat that includes the number of database rows affected */ @@ -2174,7 +2184,6 @@ translators: Block name. %s: The localized block name */ "Defaults for New Posts" = "Standard for nye innlegg"; /* Delete - Delete button title Delete button title for the warning shown to the user when he refuses to re-login when the authToken is missing. Title for button that permanently deletes a media item (photo / video) Title for button that permanently deletes one or more media items (photos / videos) @@ -2533,7 +2542,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Each block has its own settings. To find them, tap on a block. Its settings will appear on the toolbar at the bottom of the screen." = "Each block has its own settings. To find them, tap on a block. Its settings will appear on the toolbar at the bottom of the screen."; -/* Edit the post. +/* Accessibility label for edit button to enable multi selection mode in the user's media library + Edit the post. Editing GIF alert default action button. Edits a Comment Edits the comment @@ -2740,6 +2750,9 @@ translators: Block name. %s: The localized block name */ /* Secondary message shown when there are no domains that match the user entered text. */ "Enter different words above and we'll look for an address that matches it." = "Skriv inn forskjellige ord over, og vi vil se etter en adresse som matcher dem."; +/* Accessibility hint for edit button to enable multi selection mode in the user's media library */ +"Enter edit mode to enable multi select to delete" = "Enter edit mode to enable multi select to delete"; + /* (placeholder) Help enter WordPress password Placeholder of a field to type a password to protect the post. */ "Enter password" = "Skriv inn passord"; @@ -2790,9 +2803,6 @@ translators: Block name. %s: The localized block name */ /* There was an error activating a plugin, placeholder is the plugin name */ "Error activating %@." = "Feil under aktivering av %@."; -/* Message shown when approving a Comment fails. */ -"Error approving comment" = "Error approving comment"; - /* Message displayed when approving a comment fails. */ "Error approving comment." = "Error approving comment."; @@ -2802,9 +2812,6 @@ translators: Block name. %s: The localized block name */ /* There was an error deactivating a plugin, placeholder is the plugin name */ "Error deactivating %@." = "Feil under deaktivering av %@."; -/* Message shown when deleting a Comment fails. */ -"Error deleting comment" = "Error deleting comment"; - /* Message displayed when deleting a comment fails. */ "Error deleting comment." = "Error deleting comment."; @@ -2832,9 +2839,6 @@ translators: Block name. %s: The localized block name */ /* Messaged displayed when fetching plugins failed. */ "Error loading plugins" = "Feil under lasting av utvidelser."; -/* Message shown when marking a Comment as spam fails. */ -"Error marking comment as spam" = "Error marking comment as spam"; - /* Message displayed when spamming a comment fails. */ "Error marking comment as spam." = "Error marking comment as spam."; @@ -2874,12 +2878,12 @@ translators: Block name. %s: The localized block name */ /* Generic message shown when there was an error trying to re-send email verification. */ "Error sending verification email. Check your connection and try again." = "Feil under sending av verifiserings-E-post. Sjekk internettilkoblingen din og prøv igjen."; +/* Message displayed when approving a comment fails. */ +"Error setting comment to approved." = "Error setting comment to approved."; + /* Message displayed when pending a comment fails. */ "Error setting comment to pending." = "Error setting comment to pending."; -/* Message shown when unapproving a Comment fails. */ -"Error unapproving comment" = "Error unapproving comment"; - /* There was an error updating a plugin, placeholder is the plugin name */ "Error updating %@." = "Feil under oppdatering av %@."; @@ -3199,6 +3203,9 @@ translators: Block name. %s: The localized block name */ /* Next web page */ "Forward" = "Fremover"; +/* No comment provided by engineer. */ +"Four" = "Four"; + /* Browse free themes selection title */ "Free" = "Gratis"; @@ -3235,6 +3242,9 @@ translators: Block name. %s: The localized block name */ /* translators: accessibility text. %s: gallery caption. */ "Gallery caption. %s" = "Galleritekst. %s"; +/* No comment provided by engineer. */ +"Gallery style" = "Gallery style"; + /* An example tag used in the login prologue screens. */ "Gardening" = "Hagestell"; @@ -3853,6 +3863,9 @@ translators: Block name. %s: The localized block name */ User's Last Name */ "Last Name" = "Etternavn"; +/* Content of a weekly roundup push notification containing stats about the user's site. The % markers are placeholders and will be replaced by the appropriate number of views, comments, and likes. The numbers indicate the order, so they can be rearranged if necessary – 1 is views, 2 is comments, 3 is likes. */ +"Last week you had %1$d views, %2$d comments and %3$d likes." = "Last week you had %1$d views, %2$d comments and %3$d likes."; + /* Insights latest post summary header */ "Latest Post Summary" = "Nyeste innleggssammendrag"; @@ -4442,6 +4455,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Navigates to customize the gradient" = "Navigates to customize the gradient"; +/* No comment provided by engineer. */ +"Navigates to layout selection screen" = "Navigates to layout selection screen"; + /* translators: %s: Select control button label e.g. Small translators: %s: Select control button label e.g. \"Button width\" */ "Navigates to select %s" = "Navigates to select %s"; @@ -4513,6 +4529,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Table view title for the quick start section. */ "Next Steps" = "Neste trinn"; +/* Accessibility label for the button which shows the previous month in the monthly calendar view */ +"Next month" = "Next month"; + /* Accessibility label for the next notification button */ "Next notification" = "Neste varsel"; @@ -4611,6 +4630,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ Text shown when there is no data to display in the stats list view. */ "No data yet" = "Ingen data ennå."; +/* Accessibility label for no currently selected range. */ +"No date range selected" = "No date range selected"; + /* Title for the view when there aren't any fixed threats to display */ "No fixed threats" = "No fixed threats"; @@ -4886,12 +4908,18 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* A subtitle with more detailed info for the user when no WordPress.com sites could be found. */ "Once you create a WordPress.com site, you can reblog content that you like to your own site." = "Once you create a WordPress.com site, you can reblog content that you like to your own site."; +/* No comment provided by engineer. */ +"One" = "One"; + /* Subtitle displayed when the user has removed all Insights from display. */ "Only see the most relevant stats. Add insights to fit your needs." = "Se bare den mest relevante statistikken. Legg til innsikter tilpasset dine behov."; /* No comment provided by engineer. */ "Only show excerpt" = "Vis bare utdrag"; +/* Message telling the user that they've only enabled limited photo library permissions for the app. */ +"Only the selected photos you've given access to are available." = "Only the selected photos you've given access to are available."; + /* An informal exclaimation that means `something went wrong`. Title for the view when there's an error loading Activity Log Title for the view when there's an error loading scan status @@ -5478,6 +5506,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Description of a Quick Start Tour */ "Preview your new site to see what your visitors will see." = "Forhåndsvis ditt nye nettsted for å se hva dine besøkende vil se."; +/* Accessibility label for the button which shows the previous month in the monthly calendar view */ +"Previous month" = "Previous month"; + /* Accessibility label for the previous notification button */ "Previous notification" = "Forrige varsel"; @@ -5775,7 +5806,7 @@ translators: %s: Select control button label e.g. \"Button width\" */ "Remove Site Icon" = "Fjern sideikon"; /* No comment provided by engineer. */ -"Remove as Featured Image " = "Remove as Featured Image "; +"Remove as Featured Image" = "Remove as Featured Image"; /* No comment provided by engineer. */ "Remove block" = "Fjern blokk"; @@ -6235,6 +6266,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Register Domain - Domain contact information field placeholder for Country */ "Select Country" = "Velg land"; +/* Title of button that allows the user to select more photos to access within the app */ +"Select More" = "Select More"; + /* Blog Picker's Title */ "Select Site" = "Velg nettsted"; @@ -6298,6 +6332,12 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Error message when user tries a no longer existent video media object. */ "Selected media is unavailable." = "Valgte medie er utilgjengelig."; +/* Accessibility label for summary of currently single date. %1$@ is the date */ +"Selected range: %1$@ only" = "Selected range: %1$@ only"; + +/* Accessibility label for summary of currently selected range. %1$@ is the start date, %2$@ is the end date. */ +"Selected range: %1$@ to %2$@" = "Selected range: %1$@ to %2$@"; + /* translators: %s: Select font size option value e.g: \"Selected: Large\". translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Selected: %s" = "Selected: %s"; @@ -6358,7 +6398,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Set Parent" = "Sett forelder"; /* No comment provided by engineer. */ -"Set as Featured Image " = "Sett som Fremhevet bilde"; +"Set as Featured Image" = "Set as Featured Image"; /* Label for a button that sets the selected page as the site's Homepage */ "Set as Homepage" = "Sett som hjemmeside"; @@ -6576,6 +6616,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Title for the Language Picker View */ "Site Language" = "Nettstedsspråk"; +/* Title for the site menu view on the My Site screen */ +"Site Menu" = "Site Menu"; + /* Describes a site redirect domain */ "Site Redirect" = "Sideomdirigering"; @@ -6763,7 +6806,6 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Button title for Spam comment state. Marks comment as spam. - Spam Title of spam Comments filter. */ "Spam" = "Søppel"; @@ -7106,7 +7148,8 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Description shown when a user logs in with Google but no matching WordPress.com account is found */ "The Google account \"%@\" doesn't match any account on WordPress.com" = "Google-kontoen \"%@\" matcher ikke en WordPress.com-konto"; -/* Message of error prompt shown when a user tries to perform an action without an internet connection. */ +/* Error message shown when a media upload fails because the user isn't connected to the Internet. + Message of error prompt shown when a user tries to perform an action without an internet connection. */ "The Internet connection appears to be offline." = "Internettilkoblingen ser ikke ut til å virke."; /* Message informing the user that the site title can only be changed by an administrator user. */ @@ -7145,8 +7188,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Message shown when an image failed to load while trying to add it to the Media library. */ "The image could not be added to the Media Library." = "Bildet kunne ikke legges til i Mediebiblioteket."; -/* Error message shown when a media upload fails because the user isn't connected to the internet. - Message of error prompt shown when a user tries to perform an action without an internet connection. */ +/* Message of error prompt shown when a user tries to perform an action without an internet connection. */ "The internet connection appears to be offline." = "Internettforbindelsen synes å være frakoblet."; /* Message shown when an asset failed to load while trying to add it to the Media library. */ @@ -7182,6 +7224,12 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Description shown in alert to confirm skipping all quick start items */ "The quick start tour will guide you through building a basic site. Are you sure you want to skip? " = "Hurtigstartguiden vil guide deg gjennom byggingen av en grunnleggende nettside. Er du sikker på at du vil hoppe over?"; +/* A failure reason for when the request couldn't be serialized. */ +"The serialization of the request failed." = "The serialization of the request failed."; + +/* A failure reason for when the response couldn't be serialized. */ +"The serialization of the response failed." = "The serialization of the response failed."; + /* No comment provided by engineer. */ "The server returned an empty response. This usually means you need to increase the memory limit for your site." = "Serveren ga et tomt svar. Dette betyr vanligvis at du må øke mine-grensen («memory limit») på ditt nettsted."; @@ -7282,6 +7330,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Error message informing the user that there was a problem blocking posts from a site from their reader. */ "There was a problem blocking posts from the specified site." = "Det skjedde en feil. Klarte ikke å blokkere innlegg fra det nettstedet."; +/* A general error message shown to the user when there was an API communication failure. */ +"There was a problem communicating with the site." = "There was a problem communicating with the site."; + /* Message for the warning shown to the user when the app realizes there should be an auth token but there isn't one. */ "There was a problem connecting to WordPress.com. Please log in again." = "Det oppstod et problem under tilkobling til WordPress.com. Vennligst logg inn igjen."; @@ -7450,12 +7501,18 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Message displayed when a threat is ignored successfully. */ "Threat ignored." = "Threat ignored."; +/* No comment provided by engineer. */ +"Three" = "Three"; + /* Thumbnail image size. Should be the same as in core WP. */ "Thumbnail" = "Miniatyrbilde"; /* Message shown if a thumbnail preview of a media item unavailable. */ "Thumbnail unavailable." = "Miniatyrbilde ikke tilgjengelig."; +/* No comment provided by engineer. */ +"Tiled gallery settings" = "Tiled gallery settings"; + /* Blog Writing Settings: Time Format Writing Time Format Settings Title */ "Time Format" = "Tidsformat"; @@ -7600,13 +7657,16 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* No comment provided by engineer. */ "Transform block…" = "Omform blokk..."; -/* Accessibility label for trash buttons in nav bars +/* Accessibility label for trash button to delete items from the user's media library + Accessibility label for trash buttons in nav bars Button title for Trash comment state. - Trash button title Trashes a comment Trashes the comment */ "Trash" = "Slett"; +/* Accessibility hint for trash button to delete items from the user's media library */ +"Trash selected media" = "Trash selected media"; + /* Title of the trash page confirmation alert. */ "Trash this page?" = "Trash this page?"; @@ -7687,6 +7747,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Title for the setting to edit the twitter username used when sharing to twitter. */ "Twitter Username" = "Twitter-brukernavn"; +/* No comment provided by engineer. */ +"Two" = "Two"; + /* Type menu item in share extension. */ "Type" = "Type"; @@ -7783,7 +7846,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Unable to play video" = "Kunne ikke spille av video"; /* No comment provided by engineer. */ -"Unable to read the WordPress site at that URL. Tap 'Need Help?' to view the FAQ." = "Kunne ikke finne et WordPress-nettsted på den URL-en. Trykk «Trenger du hjelp?» for å vise ofte stilte spørsmål."; +"Unable to read the WordPress site at that URL. Tap 'Need more help?' to view the FAQ." = "Unable to read the WordPress site at that URL. Tap 'Need more help?' to view the FAQ."; /* Title for the Jetpack Restore Failed message. */ "Unable to restore your site" = "Unable to restore your site"; @@ -7866,6 +7929,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Underline" = "Understrek"; /* Button in the notification presented in Reader when a post removed from saved for later + Button title. Reverts a comment moderation action. Button title. Reverts the previous notification operation Revert an operation The title of an 'undo' button. Tapping the button moves a trashed page out of the trash folder. @@ -8524,9 +8588,13 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Blog Writing Settings: Weeks starts on */ "Week starts on" = "Uken starter med"; -/* Setting: indicates if the site reports its Weekly Roundup */ +/* Setting: indicates if the site reports its Weekly Roundup + Title of Weekly Roundup push notification */ "Weekly Roundup" = "Weekly Roundup"; +/* Title of Weekly Roundup push notification. %@ is a placeholder and will be replaced with the title of one of the user's websites. */ +"Weekly Roundup: %@" = "Weekly Roundup: %@"; + /* Title of Weeks stats filter. */ "Weeks" = "Uker"; @@ -8830,12 +8898,12 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* A text for subtitle label on Login epilogue screen */ "You can switch sites at any time." = "You can switch sites at any time."; +/* Prompt shown on the Blogging Reminders Settings screen. */ +"You can update this any time" = "You can update this any time"; + /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "You can update this any time via My Site > Site Settings"; -/* Prompt shown on the Blogging Reminders Settings screen. */ -"You can update this anytime" = "Du kan oppdatere dette når som helst"; - /* No comment provided by engineer. */ "You cannot use that email address to signup. We are having problems with them blocking some of our email. Please use another email provider." = "Du kan ikke bruke den e-postadressen for å lage en konto. Vi har problemer med at de blokkerer noe av e-posten vår. Vennligst bruk en annen e-postleverandør."; @@ -9059,6 +9127,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* The default Jetpack view message */ "Your website credentials will not be stored and are used only for the purpose of installing Jetpack." = "Brukernavn og passord til siden din blir ikke lagret, og brukes bare for å installere Jetpack."; +/* Prompt displayed as part of the stats Weekly Roundup push notification. */ +"Your weekly roundup is ready, tap here to see the details!" = "Your weekly roundup is ready, tap here to see the details!"; + /* Describes the expected behavior when the user disables in-app notifications in Reader Comments. */ "You’re following this conversation. You will receive an email and a notification whenever a new comment is made." = "You’re following this conversation. You will receive an email and a notification whenever a new comment is made."; diff --git a/WordPress/Resources/nl.lproj/Localizable.strings b/WordPress/Resources/nl.lproj/Localizable.strings index 0f5bb5c542d0..869701c990f5 100644 --- a/WordPress/Resources/nl.lproj/Localizable.strings +++ b/WordPress/Resources/nl.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2022-01-10 17:20:16+0000 */ +/* Translation-Revision-Date: 2022-01-25 18:10:49+0000 */ /* Plural-Forms: nplurals=2; plural=n != 1; */ /* Generator: GlotPress/3.0.0-alpha.2 */ /* Language: nl */ @@ -468,7 +468,8 @@ translators: Block name. %s: The localized block name */ /* Label for the Activity Type filter button when there are more than 1 activity type selected */ "Activity Type (%1$d)" = "Type activiteit (%1$d)"; -/* Remove asset from media picker list */ +/* Accessibility label for add button to add items to the user's media library + Remove asset from media picker list */ "Add" = "Toevoegen"; /* Action for Media Picker to indicate selection of media. The argument in the string represents the number of elements (as numeric digits) selected */ @@ -564,6 +565,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Add menu item to children" = "Menu-item aan onderliggende toevoegen"; +/* Accessibility hint for add button to add items to the user's media library */ +"Add new media" = "Nieuwe media toevoegen"; + /* Screen reader text for Menus button that adds a new menu to a site. */ "Add new menu" = "Nieuw menu toevoegen"; @@ -704,6 +708,12 @@ translators: Block name. %s: The localized block name */ /* Title of a row displayed on the debug screen used to indicate whether crash logs should be forced to send, even if they otherwise wouldn't */ "Always Send Crash Logs" = "Verzend altijd crashlogs"; +/* A failure reason for when an error HTTP status code was returned from the site, with the specific error code. */ +"An HTTP error code %i was returned." = "Een HTTP-foutcode %i werd geretourneerd."; + +/* A failure reason for when an error HTTP status code was returned from the site. */ +"An HTTP error code was returned." = "Een HTTP-foutcode werd geretourneerd."; + /* Error message when loading failed because there's no connection */ "An active internet connection is required" = "Een actieve internetverbinding is vereist"; @@ -756,6 +766,9 @@ translators: Block name. %s: The localized block name */ /* Text displayed when a stat section failed to load. */ "An error occurred." = "Er is een fout opgetreden."; +/* A failure reason for when the error that occured wasn't able to be determined. */ +"An unknown error occurred." = "Er is een onbekende fout opgetreden."; + /* Error message shown when a media upload fails for unknown reason and the user should try again. */ "An unknown error occurred. Please try again." = "Een onbekende fout heeft zich voorgedaan. Probeer opnieuw."; @@ -817,18 +830,9 @@ translators: Block name. %s: The localized block name */ /* Message prompting the user to confirm that they want to disconnect Jetpack from the site. */ "Are you sure you want to disconnect Jetpack from the site?" = "Weet je zeker dat je Jetpack wilt loskoppelen van jouw site?"; -/* Message asking for confirmation before marking a comment as spam */ -"Are you sure you want to mark this comment as Spam?" = "Weet je zeker dat je deze reactie wilt markeren als spam?"; - -/* Message asking for confirmation before marking a comment as trash */ -"Are you sure you want to mark this comment as Trash?" = "Weet je zeker dat je deze reactie wilt verplaatsen naar de prullenbak?"; - /* Message prompting the user to confirm that they want to permanently delete a group of media items. */ "Are you sure you want to permanently delete these items?" = "Weet je zeker dat je deze items definitief wilt verwijderen?"; -/* Message asking for confirmation on comment deletion */ -"Are you sure you want to permanently delete this comment?" = "Weet je zeker dat je deze reactie permanent wilt verwijderen?"; - /* Message prompting the user to confirm that they want to permanently delete a media item. Should match Calypso. */ "Are you sure you want to permanently delete this item?" = "Weet je zeker dat je dit item permanent wilt verwijderen?"; @@ -1292,6 +1296,9 @@ translators: Block name. %s: The localized block name */ Main title */ "Change Password" = "Wijzig wachtwoord"; +/* Title of button that takes user to the system Settings section for the app */ +"Change Settings" = "Wijzig instellingen"; + /* Title of an alert prompting the user that they are about to change the blog they are posting to. */ "Change Site" = "Site wijzigen"; @@ -1587,6 +1594,9 @@ translators: Block name. %s: The localized block name */ My First Post */ "Comment on" = "Reactie op"; +/* Message displayed when approving a comment succeeds. */ +"Comment set to approved." = "Reactie ingesteld op toegestaan."; + /* Message displayed when pending a comment succeeds. */ "Comment set to pending." = "Reactie op wachtend gezet."; @@ -1677,8 +1687,7 @@ translators: Block name. %s: The localized block name */ /* Section title for the configure table section in the blog details screen */ "Configure" = "Configureren"; -/* Confirm - Verb. Title for Jetpack Restore confirm button. */ +/* Verb. Title for Jetpack Restore confirm button. */ "Confirm" = "Bevestigen"; /* Close Account alert title */ @@ -2117,7 +2126,8 @@ translators: Block name. %s: The localized block name */ /* Title for the app appearance setting for dark mode */ "Dark" = "Donker"; -/* Action title. Noun. Opens the user's WordPress.com dashboard in an external browser. */ +/* Action title. Noun. Opens the user's WordPress.com dashboard in an external browser. + Title for dashboard view on the My Site screen */ "Dashboard" = "Dashboard"; /* Title for a threat that includes the number of database rows affected */ @@ -2174,7 +2184,6 @@ translators: Block name. %s: The localized block name */ "Defaults for New Posts" = "Standaardinstellingen voor nieuwe berichten"; /* Delete - Delete button title Delete button title for the warning shown to the user when he refuses to re-login when the authToken is missing. Title for button that permanently deletes a media item (photo / video) Title for button that permanently deletes one or more media items (photos / videos) @@ -2533,7 +2542,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Each block has its own settings. To find them, tap on a block. Its settings will appear on the toolbar at the bottom of the screen." = "Elk blok heeft zijn eigen instellingen. Om ze te vinden, tik op een blok. Zijn instellingen zullen verschijnen in de gereedschapsbalk onderaan het scherm."; -/* Edit the post. +/* Accessibility label for edit button to enable multi selection mode in the user's media library + Edit the post. Editing GIF alert default action button. Edits a Comment Edits the comment @@ -2740,6 +2750,9 @@ translators: Block name. %s: The localized block name */ /* Secondary message shown when there are no domains that match the user entered text. */ "Enter different words above and we'll look for an address that matches it." = "Voer hierboven andere woorden in, zodat wij op zoek kunnen gaan naar een adres dat overeenkomt."; +/* Accessibility hint for edit button to enable multi selection mode in the user's media library */ +"Enter edit mode to enable multi select to delete" = "Enter edit mode to enable multi select to delete"; + /* (placeholder) Help enter WordPress password Placeholder of a field to type a password to protect the post. */ "Enter password" = "Voer wachtwoord in"; @@ -2790,9 +2803,6 @@ translators: Block name. %s: The localized block name */ /* There was an error activating a plugin, placeholder is the plugin name */ "Error activating %@." = "Fout tijdens activeren %@."; -/* Message shown when approving a Comment fails. */ -"Error approving comment" = "Fout bij het goedkeuren van reactie"; - /* Message displayed when approving a comment fails. */ "Error approving comment." = "Fout bij goedkeuren van reactie."; @@ -2802,9 +2812,6 @@ translators: Block name. %s: The localized block name */ /* There was an error deactivating a plugin, placeholder is the plugin name */ "Error deactivating %@." = "Fout tijdens deactiveren %@."; -/* Message shown when deleting a Comment fails. */ -"Error deleting comment" = "Fout bij het verwijderen van reactie"; - /* Message displayed when deleting a comment fails. */ "Error deleting comment." = "Fout bij het verwijderen van reactie."; @@ -2832,9 +2839,6 @@ translators: Block name. %s: The localized block name */ /* Messaged displayed when fetching plugins failed. */ "Error loading plugins" = "Fout bij laden plugins"; -/* Message shown when marking a Comment as spam fails. */ -"Error marking comment as spam" = "Fout bij het markeren van reactie als span"; - /* Message displayed when spamming a comment fails. */ "Error marking comment as spam." = "Fout bij het markeren van reactie als spam."; @@ -2874,12 +2878,12 @@ translators: Block name. %s: The localized block name */ /* Generic message shown when there was an error trying to re-send email verification. */ "Error sending verification email. Check your connection and try again." = "Fout bij versturen verificatie-mail. Controleer je verbinding en probeer opnieuw."; +/* Message displayed when approving a comment fails. */ +"Error setting comment to approved." = "Fout bij instellen reactie als toegestaan."; + /* Message displayed when pending a comment fails. */ "Error setting comment to pending." = "Fout bij het instellen van reactie als wachtend."; -/* Message shown when unapproving a Comment fails. */ -"Error unapproving comment" = "Fout bij herstel reactie goedkeuring"; - /* There was an error updating a plugin, placeholder is the plugin name */ "Error updating %@." = "Fout bij updaten %@."; @@ -3199,6 +3203,9 @@ translators: Block name. %s: The localized block name */ /* Next web page */ "Forward" = "Doorsturen"; +/* No comment provided by engineer. */ +"Four" = "Vier"; + /* Browse free themes selection title */ "Free" = "Gratis"; @@ -3235,6 +3242,9 @@ translators: Block name. %s: The localized block name */ /* translators: accessibility text. %s: gallery caption. */ "Gallery caption. %s" = "Galerij bijschrift. %s"; +/* No comment provided by engineer. */ +"Gallery style" = "Galerij stijl"; + /* An example tag used in the login prologue screens. */ "Gardening" = "Tuinieren"; @@ -3853,6 +3863,9 @@ translators: Block name. %s: The localized block name */ User's Last Name */ "Last Name" = "Achternaam"; +/* Content of a weekly roundup push notification containing stats about the user's site. The % markers are placeholders and will be replaced by the appropriate number of views, comments, and likes. The numbers indicate the order, so they can be rearranged if necessary – 1 is views, 2 is comments, 3 is likes. */ +"Last week you had %1$d views, %2$d comments and %3$d likes." = "Vorige week had je %1$d bezoeken, %2$d reacties en %3$d vind-ik-leuks."; + /* Insights latest post summary header */ "Latest Post Summary" = "Samenvatting laatste bericht"; @@ -4442,6 +4455,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Navigates to customize the gradient" = "Navigeert naar aanpassen van het verloop"; +/* No comment provided by engineer. */ +"Navigates to layout selection screen" = "Navigeert naar het lay-out selectiescherm"; + /* translators: %s: Select control button label e.g. Small translators: %s: Select control button label e.g. \"Button width\" */ "Navigates to select %s" = "Navigeert om %s te selecteren"; @@ -4513,6 +4529,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Table view title for the quick start section. */ "Next Steps" = "Volgende stappen"; +/* Accessibility label for the button which shows the previous month in the monthly calendar view */ +"Next month" = "Volgende maand"; + /* Accessibility label for the next notification button */ "Next notification" = "Volgende notificatie"; @@ -4611,6 +4630,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ Text shown when there is no data to display in the stats list view. */ "No data yet" = "Nog geen gegevens"; +/* Accessibility label for no currently selected range. */ +"No date range selected" = "Geen datumbereik geselecteerd"; + /* Title for the view when there aren't any fixed threats to display */ "No fixed threats" = "Geen opgeloste bedreigingen"; @@ -4886,12 +4908,18 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* A subtitle with more detailed info for the user when no WordPress.com sites could be found. */ "Once you create a WordPress.com site, you can reblog content that you like to your own site." = "Zodra je een WordPress.com site maakt, kun je inhoud die je leuk vindt rebloggen op je eigen site."; +/* No comment provided by engineer. */ +"One" = "Één"; + /* Subtitle displayed when the user has removed all Insights from display. */ "Only see the most relevant stats. Add insights to fit your needs." = "Bekijk alleen de meest relevante statistieken. Voeg inzichten toe, zodat deze aansluiten bij je behoeften."; /* No comment provided by engineer. */ "Only show excerpt" = "Toon alleen samenvatting"; +/* Message telling the user that they've only enabled limited photo library permissions for the app. */ +"Only the selected photos you've given access to are available." = "Alleen de geselecteerde foto's waar je toegang voor hebt zijn beschikbaar."; + /* An informal exclaimation that means `something went wrong`. Title for the view when there's an error loading Activity Log Title for the view when there's an error loading scan status @@ -5478,6 +5506,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Description of a Quick Start Tour */ "Preview your new site to see what your visitors will see." = "Bekijk een voorbeeld van je nieuwe site om te zien wat je bezoekers zien.."; +/* Accessibility label for the button which shows the previous month in the monthly calendar view */ +"Previous month" = "Vorige maand"; + /* Accessibility label for the previous notification button */ "Previous notification" = "Vorige melding"; @@ -5775,7 +5806,7 @@ translators: %s: Select control button label e.g. \"Button width\" */ "Remove Site Icon" = "Favicon verwijderen"; /* No comment provided by engineer. */ -"Remove as Featured Image " = "Verwijder als uitgelichte afbeelding "; +"Remove as Featured Image" = "Verwijder als uitgelichte afbeelding "; /* No comment provided by engineer. */ "Remove block" = "Verwijder blok"; @@ -6235,6 +6266,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Register Domain - Domain contact information field placeholder for Country */ "Select Country" = "Selecteer land"; +/* Title of button that allows the user to select more photos to access within the app */ +"Select More" = "Meer selecteren"; + /* Blog Picker's Title */ "Select Site" = "Site selecteren"; @@ -6298,6 +6332,12 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Error message when user tries a no longer existent video media object. */ "Selected media is unavailable." = "Geselecteerde media is niet beschikbaar."; +/* Accessibility label for summary of currently single date. %1$@ is the date */ +"Selected range: %1$@ only" = "Geselecteerd bereik: alleen %1$@"; + +/* Accessibility label for summary of currently selected range. %1$@ is the start date, %2$@ is the end date. */ +"Selected range: %1$@ to %2$@" = "Geselecteerd bereik: %1$@ tot %2$@"; + /* translators: %s: Select font size option value e.g: \"Selected: Large\". translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Selected: %s" = "Geselecteerd: %s"; @@ -6358,7 +6398,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Set Parent" = "Instellen als bovenliggend item"; /* No comment provided by engineer. */ -"Set as Featured Image " = "Instellen als uitgelichte afbeelding "; +"Set as Featured Image" = "Instellen als uitgelichte afbeelding "; /* Label for a button that sets the selected page as the site's Homepage */ "Set as Homepage" = "Instellen als homepage"; @@ -6576,6 +6616,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Title for the Language Picker View */ "Site Language" = "Site taal"; +/* Title for the site menu view on the My Site screen */ +"Site Menu" = "Site menu"; + /* Describes a site redirect domain */ "Site Redirect" = "Sitedoorverwijzing"; @@ -6763,7 +6806,6 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Button title for Spam comment state. Marks comment as spam. - Spam Title of spam Comments filter. */ "Spam" = "Spam"; @@ -7106,7 +7148,8 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Description shown when a user logs in with Google but no matching WordPress.com account is found */ "The Google account \"%@\" doesn't match any account on WordPress.com" = "Het Google account \"%@\" komt niet overeen met een account op WordPress.com"; -/* Message of error prompt shown when a user tries to perform an action without an internet connection. */ +/* Error message shown when a media upload fails because the user isn't connected to the Internet. + Message of error prompt shown when a user tries to perform an action without an internet connection. */ "The Internet connection appears to be offline." = "De internetverbinding is offline."; /* Message informing the user that the site title can only be changed by an administrator user. */ @@ -7145,8 +7188,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Message shown when an image failed to load while trying to add it to the Media library. */ "The image could not be added to the Media Library." = "De afbeelding kon niet aan de mediabibliotheek toegevoegd worden."; -/* Error message shown when a media upload fails because the user isn't connected to the internet. - Message of error prompt shown when a user tries to perform an action without an internet connection. */ +/* Message of error prompt shown when a user tries to perform an action without an internet connection. */ "The internet connection appears to be offline." = "De Internet verbinding is offline."; /* Message shown when an asset failed to load while trying to add it to the Media library. */ @@ -7182,6 +7224,12 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Description shown in alert to confirm skipping all quick start items */ "The quick start tour will guide you through building a basic site. Are you sure you want to skip? " = "In de snelle rondleiding wordt getoond hoe je een basissite bouwt. Weet je zeker dat je wilt overslaan? "; +/* A failure reason for when the request couldn't be serialized. */ +"The serialization of the request failed." = "The serialization of the request failed."; + +/* A failure reason for when the response couldn't be serialized. */ +"The serialization of the response failed." = "The serialization of the response failed."; + /* No comment provided by engineer. */ "The server returned an empty response. This usually means you need to increase the memory limit for your site." = "De server heeft een lege respons teruggestuurd. Dat betekent meestal dat je de geheugenlimiet voor je site moet verhogen."; @@ -7282,6 +7330,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Error message informing the user that there was a problem blocking posts from a site from their reader. */ "There was a problem blocking posts from the specified site." = "Er is een probleem opgetreden bij het blokkeren van berichten van de opgegeven site."; +/* A general error message shown to the user when there was an API communication failure. */ +"There was a problem communicating with the site." = "Er is een probleem opgetreden bij het communiceren met de site."; + /* Message for the warning shown to the user when the app realizes there should be an auth token but there isn't one. */ "There was a problem connecting to WordPress.com. Please log in again." = "Er was een probleem met het verbinden naar WordPress.com. Log opnieuw in."; @@ -7450,12 +7501,18 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Message displayed when a threat is ignored successfully. */ "Threat ignored." = "Bedreiging genegeerd."; +/* No comment provided by engineer. */ +"Three" = "Drie"; + /* Thumbnail image size. Should be the same as in core WP. */ "Thumbnail" = "Thumbnail"; /* Message shown if a thumbnail preview of a media item unavailable. */ "Thumbnail unavailable." = "Thumbnail niet beschikbaar."; +/* No comment provided by engineer. */ +"Tiled gallery settings" = "Getegelde galerij instellingen"; + /* Blog Writing Settings: Time Format Writing Time Format Settings Title */ "Time Format" = "Tijdformaat"; @@ -7600,13 +7657,16 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* No comment provided by engineer. */ "Transform block…" = "Transformeer blok..."; -/* Accessibility label for trash buttons in nav bars +/* Accessibility label for trash button to delete items from the user's media library + Accessibility label for trash buttons in nav bars Button title for Trash comment state. - Trash button title Trashes a comment Trashes the comment */ "Trash" = "Prullenmand"; +/* Accessibility hint for trash button to delete items from the user's media library */ +"Trash selected media" = "Verplaats geselecteerde media naar prullenbak"; + /* Title of the trash page confirmation alert. */ "Trash this page?" = "Deze pagina naar prullenbak verplaatsen?"; @@ -7687,6 +7747,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Title for the setting to edit the twitter username used when sharing to twitter. */ "Twitter Username" = "Twitter gebruikersnaam"; +/* No comment provided by engineer. */ +"Two" = "Twee"; + /* Type menu item in share extension. */ "Type" = "Type"; @@ -7783,7 +7846,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Unable to play video" = "Niet mogelijk video af te spelen"; /* No comment provided by engineer. */ -"Unable to read the WordPress site at that URL. Tap 'Need Help?' to view the FAQ." = "Kon geen WordPress-site lezen op deze URL. Tik op 'Hulp nodig?' om de veelgestelde vragen te bekijken."; +"Unable to read the WordPress site at that URL. Tap 'Need more help?' to view the FAQ." = "Kan geen WordPress site lezen op deze URL. Tik op 'Hulp nodig?' om de veelgestelde vragen te bekijken."; /* Title for the Jetpack Restore Failed message. */ "Unable to restore your site" = "Kan je site niet terugzetten"; @@ -7866,6 +7929,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Underline" = "Onderstreept"; /* Button in the notification presented in Reader when a post removed from saved for later + Button title. Reverts a comment moderation action. Button title. Reverts the previous notification operation Revert an operation The title of an 'undo' button. Tapping the button moves a trashed page out of the trash folder. @@ -8524,9 +8588,13 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Blog Writing Settings: Weeks starts on */ "Week starts on" = "Week start op"; -/* Setting: indicates if the site reports its Weekly Roundup */ +/* Setting: indicates if the site reports its Weekly Roundup + Title of Weekly Roundup push notification */ "Weekly Roundup" = "Wekelijks overzicht"; +/* Title of Weekly Roundup push notification. %@ is a placeholder and will be replaced with the title of one of the user's websites. */ +"Weekly Roundup: %@" = "Wekelijks overzicht: %@"; + /* Title of Weeks stats filter. */ "Weeks" = "Weken"; @@ -8830,12 +8898,12 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* A text for subtitle label on Login epilogue screen */ "You can switch sites at any time." = "Je kunt op elk moment van site veranderen."; +/* Prompt shown on the Blogging Reminders Settings screen. */ +"You can update this any time" = "Je kunt dit op elk moment updaten"; + /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "Je kunt dit op elk gewenst moment updaten via Mijn site > site-instellingen"; -/* Prompt shown on the Blogging Reminders Settings screen. */ -"You can update this anytime" = "Je kunt dit op elk moment updaten"; - /* No comment provided by engineer. */ "You cannot use that email address to signup. We are having problems with them blocking some of our email. Please use another email provider." = "Je kan dat e-mailadres niet gebruiken om je aan te melden. We hebben problemen met het blokkeren van sommige e-mailadressen. Probeer een andere e-mail provider."; @@ -9059,6 +9127,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* The default Jetpack view message */ "Your website credentials will not be stored and are used only for the purpose of installing Jetpack." = "De inloggegevens voor je website zullen niet worden opgeslagen en worden alleen gebruikt om Jetpack te installeren."; +/* Prompt displayed as part of the stats Weekly Roundup push notification. */ +"Your weekly roundup is ready, tap here to see the details!" = "Je wekelijkse overzicht is klaar, tik hier om de details te bekijken!"; + /* Describes the expected behavior when the user disables in-app notifications in Reader Comments. */ "You’re following this conversation. You will receive an email and a notification whenever a new comment is made." = "Je volgt deze conversatie. Je ontvangt een e-mail zodra er een nieuwe reactie is."; diff --git a/WordPress/Resources/pl.lproj/Localizable.strings b/WordPress/Resources/pl.lproj/Localizable.strings index 270cbd418616..4abcb6636d4c 100644 --- a/WordPress/Resources/pl.lproj/Localizable.strings +++ b/WordPress/Resources/pl.lproj/Localizable.strings @@ -468,7 +468,8 @@ translators: Block name. %s: The localized block name */ /* Label for the Activity Type filter button when there are more than 1 activity type selected */ "Activity Type (%1$d)" = "Activity Type (%1$d)"; -/* Remove asset from media picker list */ +/* Accessibility label for add button to add items to the user's media library + Remove asset from media picker list */ "Add" = "Add"; /* Action for Media Picker to indicate selection of media. The argument in the string represents the number of elements (as numeric digits) selected */ @@ -564,6 +565,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Add menu item to children" = "Add menu item to children"; +/* Accessibility hint for add button to add items to the user's media library */ +"Add new media" = "Add new media"; + /* Screen reader text for Menus button that adds a new menu to a site. */ "Add new menu" = "Add new menu"; @@ -704,6 +708,12 @@ translators: Block name. %s: The localized block name */ /* Title of a row displayed on the debug screen used to indicate whether crash logs should be forced to send, even if they otherwise wouldn't */ "Always Send Crash Logs" = "Always Send Crash Logs"; +/* A failure reason for when an error HTTP status code was returned from the site, with the specific error code. */ +"An HTTP error code %i was returned." = "An HTTP error code %i was returned."; + +/* A failure reason for when an error HTTP status code was returned from the site. */ +"An HTTP error code was returned." = "An HTTP error code was returned."; + /* Error message when loading failed because there's no connection */ "An active internet connection is required" = "An active internet connection is required"; @@ -756,6 +766,9 @@ translators: Block name. %s: The localized block name */ /* Text displayed when a stat section failed to load. */ "An error occurred." = "An error occurred."; +/* A failure reason for when the error that occured wasn't able to be determined. */ +"An unknown error occurred." = "An unknown error occurred."; + /* Error message shown when a media upload fails for unknown reason and the user should try again. */ "An unknown error occurred. Please try again." = "An unknown error occurred. Please try again."; @@ -817,18 +830,9 @@ translators: Block name. %s: The localized block name */ /* Message prompting the user to confirm that they want to disconnect Jetpack from the site. */ "Are you sure you want to disconnect Jetpack from the site?" = "Are you sure you want to disconnect Jetpack from the site?"; -/* Message asking for confirmation before marking a comment as spam */ -"Are you sure you want to mark this comment as Spam?" = "Are you sure you want to mark this comment as Spam?"; - -/* Message asking for confirmation before marking a comment as trash */ -"Are you sure you want to mark this comment as Trash?" = "Are you sure you want to mark this comment as Trash?"; - /* Message prompting the user to confirm that they want to permanently delete a group of media items. */ "Are you sure you want to permanently delete these items?" = "Are you sure you want to permanently delete these items?"; -/* Message asking for confirmation on comment deletion */ -"Are you sure you want to permanently delete this comment?" = "Are you sure you want to permanently delete this comment?"; - /* Message prompting the user to confirm that they want to permanently delete a media item. Should match Calypso. */ "Are you sure you want to permanently delete this item?" = "Are you sure you want to permanently delete this item?"; @@ -1292,6 +1296,9 @@ translators: Block name. %s: The localized block name */ Main title */ "Change Password" = "Change Password"; +/* Title of button that takes user to the system Settings section for the app */ +"Change Settings" = "Change Settings"; + /* Title of an alert prompting the user that they are about to change the blog they are posting to. */ "Change Site" = "Change Site"; @@ -1587,6 +1594,9 @@ translators: Block name. %s: The localized block name */ My First Post */ "Comment on" = "Comment on"; +/* Message displayed when approving a comment succeeds. */ +"Comment set to approved." = "Comment set to approved."; + /* Message displayed when pending a comment succeeds. */ "Comment set to pending." = "Comment set to pending."; @@ -1677,8 +1687,7 @@ translators: Block name. %s: The localized block name */ /* Section title for the configure table section in the blog details screen */ "Configure" = "Konfiguruj"; -/* Confirm - Verb. Title for Jetpack Restore confirm button. */ +/* Verb. Title for Jetpack Restore confirm button. */ "Confirm" = "Confirm"; /* Close Account alert title */ @@ -2117,7 +2126,8 @@ translators: Block name. %s: The localized block name */ /* Title for the app appearance setting for dark mode */ "Dark" = "Dark"; -/* Action title. Noun. Opens the user's WordPress.com dashboard in an external browser. */ +/* Action title. Noun. Opens the user's WordPress.com dashboard in an external browser. + Title for dashboard view on the My Site screen */ "Dashboard" = "Dashboard"; /* Title for a threat that includes the number of database rows affected */ @@ -2174,7 +2184,6 @@ translators: Block name. %s: The localized block name */ "Defaults for New Posts" = "Defaults for New Posts"; /* Delete - Delete button title Delete button title for the warning shown to the user when he refuses to re-login when the authToken is missing. Title for button that permanently deletes a media item (photo / video) Title for button that permanently deletes one or more media items (photos / videos) @@ -2533,7 +2542,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Each block has its own settings. To find them, tap on a block. Its settings will appear on the toolbar at the bottom of the screen." = "Each block has its own settings. To find them, tap on a block. Its settings will appear on the toolbar at the bottom of the screen."; -/* Edit the post. +/* Accessibility label for edit button to enable multi selection mode in the user's media library + Edit the post. Editing GIF alert default action button. Edits a Comment Edits the comment @@ -2740,6 +2750,9 @@ translators: Block name. %s: The localized block name */ /* Secondary message shown when there are no domains that match the user entered text. */ "Enter different words above and we'll look for an address that matches it." = "Enter different words above and we'll look for an address that matches it."; +/* Accessibility hint for edit button to enable multi selection mode in the user's media library */ +"Enter edit mode to enable multi select to delete" = "Enter edit mode to enable multi select to delete"; + /* (placeholder) Help enter WordPress password Placeholder of a field to type a password to protect the post. */ "Enter password" = "Enter password"; @@ -2790,9 +2803,6 @@ translators: Block name. %s: The localized block name */ /* There was an error activating a plugin, placeholder is the plugin name */ "Error activating %@." = "Error activating %@."; -/* Message shown when approving a Comment fails. */ -"Error approving comment" = "Error approving comment"; - /* Message displayed when approving a comment fails. */ "Error approving comment." = "Error approving comment."; @@ -2802,9 +2812,6 @@ translators: Block name. %s: The localized block name */ /* There was an error deactivating a plugin, placeholder is the plugin name */ "Error deactivating %@." = "Error deactivating %@."; -/* Message shown when deleting a Comment fails. */ -"Error deleting comment" = "Error deleting comment"; - /* Message displayed when deleting a comment fails. */ "Error deleting comment." = "Error deleting comment."; @@ -2832,9 +2839,6 @@ translators: Block name. %s: The localized block name */ /* Messaged displayed when fetching plugins failed. */ "Error loading plugins" = "Error loading plugins"; -/* Message shown when marking a Comment as spam fails. */ -"Error marking comment as spam" = "Error marking comment as spam"; - /* Message displayed when spamming a comment fails. */ "Error marking comment as spam." = "Error marking comment as spam."; @@ -2874,12 +2878,12 @@ translators: Block name. %s: The localized block name */ /* Generic message shown when there was an error trying to re-send email verification. */ "Error sending verification email. Check your connection and try again." = "Error sending verification email. Check your connection and try again."; +/* Message displayed when approving a comment fails. */ +"Error setting comment to approved." = "Error setting comment to approved."; + /* Message displayed when pending a comment fails. */ "Error setting comment to pending." = "Error setting comment to pending."; -/* Message shown when unapproving a Comment fails. */ -"Error unapproving comment" = "Error unapproving comment"; - /* There was an error updating a plugin, placeholder is the plugin name */ "Error updating %@." = "Error updating %@."; @@ -3199,6 +3203,9 @@ translators: Block name. %s: The localized block name */ /* Next web page */ "Forward" = "Forward"; +/* No comment provided by engineer. */ +"Four" = "Four"; + /* Browse free themes selection title */ "Free" = "Free"; @@ -3235,6 +3242,9 @@ translators: Block name. %s: The localized block name */ /* translators: accessibility text. %s: gallery caption. */ "Gallery caption. %s" = "Gallery caption. %s"; +/* No comment provided by engineer. */ +"Gallery style" = "Gallery style"; + /* An example tag used in the login prologue screens. */ "Gardening" = "Gardening"; @@ -3853,6 +3863,9 @@ translators: Block name. %s: The localized block name */ User's Last Name */ "Last Name" = "Last Name"; +/* Content of a weekly roundup push notification containing stats about the user's site. The % markers are placeholders and will be replaced by the appropriate number of views, comments, and likes. The numbers indicate the order, so they can be rearranged if necessary – 1 is views, 2 is comments, 3 is likes. */ +"Last week you had %1$d views, %2$d comments and %3$d likes." = "Last week you had %1$d views, %2$d comments and %3$d likes."; + /* Insights latest post summary header */ "Latest Post Summary" = "Latest Post Summary"; @@ -4442,6 +4455,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Navigates to customize the gradient" = "Navigates to customize the gradient"; +/* No comment provided by engineer. */ +"Navigates to layout selection screen" = "Navigates to layout selection screen"; + /* translators: %s: Select control button label e.g. Small translators: %s: Select control button label e.g. \"Button width\" */ "Navigates to select %s" = "Navigates to select %s"; @@ -4513,6 +4529,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Table view title for the quick start section. */ "Next Steps" = "Next Steps"; +/* Accessibility label for the button which shows the previous month in the monthly calendar view */ +"Next month" = "Next month"; + /* Accessibility label for the next notification button */ "Next notification" = "Next notification"; @@ -4611,6 +4630,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ Text shown when there is no data to display in the stats list view. */ "No data yet" = "No data yet"; +/* Accessibility label for no currently selected range. */ +"No date range selected" = "No date range selected"; + /* Title for the view when there aren't any fixed threats to display */ "No fixed threats" = "No fixed threats"; @@ -4886,12 +4908,18 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* A subtitle with more detailed info for the user when no WordPress.com sites could be found. */ "Once you create a WordPress.com site, you can reblog content that you like to your own site." = "Once you create a WordPress.com site, you can reblog content that you like to your own site."; +/* No comment provided by engineer. */ +"One" = "One"; + /* Subtitle displayed when the user has removed all Insights from display. */ "Only see the most relevant stats. Add insights to fit your needs." = "Only see the most relevant stats. Add insights to fit your needs."; /* No comment provided by engineer. */ "Only show excerpt" = "Only show excerpt"; +/* Message telling the user that they've only enabled limited photo library permissions for the app. */ +"Only the selected photos you've given access to are available." = "Only the selected photos you've given access to are available."; + /* An informal exclaimation that means `something went wrong`. Title for the view when there's an error loading Activity Log Title for the view when there's an error loading scan status @@ -5478,6 +5506,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Description of a Quick Start Tour */ "Preview your new site to see what your visitors will see." = "Preview your new site to see what your visitors will see."; +/* Accessibility label for the button which shows the previous month in the monthly calendar view */ +"Previous month" = "Previous month"; + /* Accessibility label for the previous notification button */ "Previous notification" = "Previous notification"; @@ -5775,7 +5806,7 @@ translators: %s: Select control button label e.g. \"Button width\" */ "Remove Site Icon" = "Remove Site Icon"; /* No comment provided by engineer. */ -"Remove as Featured Image " = "Remove as Featured Image "; +"Remove as Featured Image" = "Remove as Featured Image"; /* No comment provided by engineer. */ "Remove block" = "Remove block"; @@ -6235,6 +6266,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Register Domain - Domain contact information field placeholder for Country */ "Select Country" = "Select Country"; +/* Title of button that allows the user to select more photos to access within the app */ +"Select More" = "Select More"; + /* Blog Picker's Title */ "Select Site" = "Select Site"; @@ -6298,6 +6332,12 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Error message when user tries a no longer existent video media object. */ "Selected media is unavailable." = "Selected media is unavailable."; +/* Accessibility label for summary of currently single date. %1$@ is the date */ +"Selected range: %1$@ only" = "Selected range: %1$@ only"; + +/* Accessibility label for summary of currently selected range. %1$@ is the start date, %2$@ is the end date. */ +"Selected range: %1$@ to %2$@" = "Selected range: %1$@ to %2$@"; + /* translators: %s: Select font size option value e.g: \"Selected: Large\". translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Selected: %s" = "Selected: %s"; @@ -6358,7 +6398,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Set Parent" = "Set Parent"; /* No comment provided by engineer. */ -"Set as Featured Image " = "Set as Featured Image "; +"Set as Featured Image" = "Set as Featured Image"; /* Label for a button that sets the selected page as the site's Homepage */ "Set as Homepage" = "Set as Homepage"; @@ -6576,6 +6616,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Title for the Language Picker View */ "Site Language" = "Site Language"; +/* Title for the site menu view on the My Site screen */ +"Site Menu" = "Site Menu"; + /* Describes a site redirect domain */ "Site Redirect" = "Site Redirect"; @@ -6763,7 +6806,6 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Button title for Spam comment state. Marks comment as spam. - Spam Title of spam Comments filter. */ "Spam" = "Spam"; @@ -7106,7 +7148,8 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Description shown when a user logs in with Google but no matching WordPress.com account is found */ "The Google account \"%@\" doesn't match any account on WordPress.com" = "The Google account \"%@\" doesn't match any account on WordPress.com"; -/* Message of error prompt shown when a user tries to perform an action without an internet connection. */ +/* Error message shown when a media upload fails because the user isn't connected to the Internet. + Message of error prompt shown when a user tries to perform an action without an internet connection. */ "The Internet connection appears to be offline." = "The Internet connection appears to be offline."; /* Message informing the user that the site title can only be changed by an administrator user. */ @@ -7145,8 +7188,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Message shown when an image failed to load while trying to add it to the Media library. */ "The image could not be added to the Media Library." = "The image could not be added to the Media Library."; -/* Error message shown when a media upload fails because the user isn't connected to the internet. - Message of error prompt shown when a user tries to perform an action without an internet connection. */ +/* Message of error prompt shown when a user tries to perform an action without an internet connection. */ "The internet connection appears to be offline." = "Prawdopodobnie utracono połączenie z internetem."; /* Message shown when an asset failed to load while trying to add it to the Media library. */ @@ -7182,6 +7224,12 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Description shown in alert to confirm skipping all quick start items */ "The quick start tour will guide you through building a basic site. Are you sure you want to skip? " = "The quick start tour will guide you through building a basic site. Are you sure you want to skip? "; +/* A failure reason for when the request couldn't be serialized. */ +"The serialization of the request failed." = "The serialization of the request failed."; + +/* A failure reason for when the response couldn't be serialized. */ +"The serialization of the response failed." = "The serialization of the response failed."; + /* No comment provided by engineer. */ "The server returned an empty response. This usually means you need to increase the memory limit for your site." = "The server returned an empty response. This usually means you need to increase the memory limit for your site."; @@ -7282,6 +7330,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Error message informing the user that there was a problem blocking posts from a site from their reader. */ "There was a problem blocking posts from the specified site." = "There was a problem blocking posts from the specified site."; +/* A general error message shown to the user when there was an API communication failure. */ +"There was a problem communicating with the site." = "There was a problem communicating with the site."; + /* Message for the warning shown to the user when the app realizes there should be an auth token but there isn't one. */ "There was a problem connecting to WordPress.com. Please log in again." = "There was a problem connecting to WordPress.com. Please log in again."; @@ -7450,12 +7501,18 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Message displayed when a threat is ignored successfully. */ "Threat ignored." = "Threat ignored."; +/* No comment provided by engineer. */ +"Three" = "Three"; + /* Thumbnail image size. Should be the same as in core WP. */ "Thumbnail" = "Thumbnail"; /* Message shown if a thumbnail preview of a media item unavailable. */ "Thumbnail unavailable." = "Thumbnail unavailable."; +/* No comment provided by engineer. */ +"Tiled gallery settings" = "Tiled gallery settings"; + /* Blog Writing Settings: Time Format Writing Time Format Settings Title */ "Time Format" = "Time Format"; @@ -7600,13 +7657,16 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* No comment provided by engineer. */ "Transform block…" = "Transform block…"; -/* Accessibility label for trash buttons in nav bars +/* Accessibility label for trash button to delete items from the user's media library + Accessibility label for trash buttons in nav bars Button title for Trash comment state. - Trash button title Trashes a comment Trashes the comment */ "Trash" = "Trash"; +/* Accessibility hint for trash button to delete items from the user's media library */ +"Trash selected media" = "Trash selected media"; + /* Title of the trash page confirmation alert. */ "Trash this page?" = "Trash this page?"; @@ -7687,6 +7747,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Title for the setting to edit the twitter username used when sharing to twitter. */ "Twitter Username" = "Twitter Username"; +/* No comment provided by engineer. */ +"Two" = "Two"; + /* Type menu item in share extension. */ "Type" = "Type"; @@ -7783,7 +7846,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Unable to play video" = "Unable to play video"; /* No comment provided by engineer. */ -"Unable to read the WordPress site at that URL. Tap 'Need Help?' to view the FAQ." = "Unable to read the WordPress site at that URL. Tap 'Need Help?' to view the FAQ."; +"Unable to read the WordPress site at that URL. Tap 'Need more help?' to view the FAQ." = "Unable to read the WordPress site at that URL. Tap 'Need more help?' to view the FAQ."; /* Title for the Jetpack Restore Failed message. */ "Unable to restore your site" = "Unable to restore your site"; @@ -7866,6 +7929,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Underline" = "Underline"; /* Button in the notification presented in Reader when a post removed from saved for later + Button title. Reverts a comment moderation action. Button title. Reverts the previous notification operation Revert an operation The title of an 'undo' button. Tapping the button moves a trashed page out of the trash folder. @@ -8524,9 +8588,13 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Blog Writing Settings: Weeks starts on */ "Week starts on" = "Week starts on"; -/* Setting: indicates if the site reports its Weekly Roundup */ +/* Setting: indicates if the site reports its Weekly Roundup + Title of Weekly Roundup push notification */ "Weekly Roundup" = "Weekly Roundup"; +/* Title of Weekly Roundup push notification. %@ is a placeholder and will be replaced with the title of one of the user's websites. */ +"Weekly Roundup: %@" = "Weekly Roundup: %@"; + /* Title of Weeks stats filter. */ "Weeks" = "Weeks"; @@ -8830,12 +8898,12 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* A text for subtitle label on Login epilogue screen */ "You can switch sites at any time." = "You can switch sites at any time."; +/* Prompt shown on the Blogging Reminders Settings screen. */ +"You can update this any time" = "You can update this any time"; + /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "You can update this any time via My Site > Site Settings"; -/* Prompt shown on the Blogging Reminders Settings screen. */ -"You can update this anytime" = "You can update this anytime"; - /* No comment provided by engineer. */ "You cannot use that email address to signup. We are having problems with them blocking some of our email. Please use another email provider." = "You cannot use that email address to signup. We are having problems with them blocking some of our email. Please use another email provider."; @@ -9059,6 +9127,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* The default Jetpack view message */ "Your website credentials will not be stored and are used only for the purpose of installing Jetpack." = "Your website credentials will not be stored and are used only for the purpose of installing Jetpack."; +/* Prompt displayed as part of the stats Weekly Roundup push notification. */ +"Your weekly roundup is ready, tap here to see the details!" = "Your weekly roundup is ready, tap here to see the details!"; + /* Describes the expected behavior when the user disables in-app notifications in Reader Comments. */ "You’re following this conversation. You will receive an email and a notification whenever a new comment is made." = "You’re following this conversation. You will receive an email and a notification whenever a new comment is made."; diff --git a/WordPress/Resources/pt-BR.lproj/Localizable.strings b/WordPress/Resources/pt-BR.lproj/Localizable.strings index 6dc8bdb5a93b..0469fdacd3c2 100644 --- a/WordPress/Resources/pt-BR.lproj/Localizable.strings +++ b/WordPress/Resources/pt-BR.lproj/Localizable.strings @@ -468,7 +468,8 @@ translators: Block name. %s: The localized block name */ /* Label for the Activity Type filter button when there are more than 1 activity type selected */ "Activity Type (%1$d)" = "Tipo de atividade (%1$d)"; -/* Remove asset from media picker list */ +/* Accessibility label for add button to add items to the user's media library + Remove asset from media picker list */ "Add" = "Adicionar"; /* Action for Media Picker to indicate selection of media. The argument in the string represents the number of elements (as numeric digits) selected */ @@ -564,6 +565,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Add menu item to children" = "Adicionar item de menu"; +/* Accessibility hint for add button to add items to the user's media library */ +"Add new media" = "Add new media"; + /* Screen reader text for Menus button that adds a new menu to a site. */ "Add new menu" = "Adicionar novo menu"; @@ -704,6 +708,12 @@ translators: Block name. %s: The localized block name */ /* Title of a row displayed on the debug screen used to indicate whether crash logs should be forced to send, even if they otherwise wouldn't */ "Always Send Crash Logs" = "Sempre enviar resumo de falhas"; +/* A failure reason for when an error HTTP status code was returned from the site, with the specific error code. */ +"An HTTP error code %i was returned." = "An HTTP error code %i was returned."; + +/* A failure reason for when an error HTTP status code was returned from the site. */ +"An HTTP error code was returned." = "An HTTP error code was returned."; + /* Error message when loading failed because there's no connection */ "An active internet connection is required" = "É necessário estar conectado à internet"; @@ -756,6 +766,9 @@ translators: Block name. %s: The localized block name */ /* Text displayed when a stat section failed to load. */ "An error occurred." = "Ocorreu um erro."; +/* A failure reason for when the error that occured wasn't able to be determined. */ +"An unknown error occurred." = "An unknown error occurred."; + /* Error message shown when a media upload fails for unknown reason and the user should try again. */ "An unknown error occurred. Please try again." = "Ocorreu um erro desconhecido. Tente novamente."; @@ -817,18 +830,9 @@ translators: Block name. %s: The localized block name */ /* Message prompting the user to confirm that they want to disconnect Jetpack from the site. */ "Are you sure you want to disconnect Jetpack from the site?" = "Tem certeza de que deseja desconectar o Jetpack do seu site?"; -/* Message asking for confirmation before marking a comment as spam */ -"Are you sure you want to mark this comment as Spam?" = "Você tem certeza que deseja marcar este comentário como Spam?"; - -/* Message asking for confirmation before marking a comment as trash */ -"Are you sure you want to mark this comment as Trash?" = "Você tem certeza que deseja enviar este comentário para a lixeira?"; - /* Message prompting the user to confirm that they want to permanently delete a group of media items. */ "Are you sure you want to permanently delete these items?" = "Tem certeza que deseja excluir permanentemente os itens selecionados?"; -/* Message asking for confirmation on comment deletion */ -"Are you sure you want to permanently delete this comment?" = "Tem certeza que deseja excluir permanentemente este comentário? "; - /* Message prompting the user to confirm that they want to permanently delete a media item. Should match Calypso. */ "Are you sure you want to permanently delete this item?" = "Tem certeza de que deseja excluir permanentemente este item?"; @@ -1292,6 +1296,9 @@ translators: Block name. %s: The localized block name */ Main title */ "Change Password" = "Alterar senha"; +/* Title of button that takes user to the system Settings section for the app */ +"Change Settings" = "Change Settings"; + /* Title of an alert prompting the user that they are about to change the blog they are posting to. */ "Change Site" = "Trocar de site"; @@ -1587,6 +1594,9 @@ translators: Block name. %s: The localized block name */ My First Post */ "Comment on" = "Comentar"; +/* Message displayed when approving a comment succeeds. */ +"Comment set to approved." = "Comment set to approved."; + /* Message displayed when pending a comment succeeds. */ "Comment set to pending." = "Comentário configurado como pendente."; @@ -1677,8 +1687,7 @@ translators: Block name. %s: The localized block name */ /* Section title for the configure table section in the blog details screen */ "Configure" = "Configurar"; -/* Confirm - Verb. Title for Jetpack Restore confirm button. */ +/* Verb. Title for Jetpack Restore confirm button. */ "Confirm" = "Confirmar"; /* Close Account alert title */ @@ -2117,7 +2126,8 @@ translators: Block name. %s: The localized block name */ /* Title for the app appearance setting for dark mode */ "Dark" = "Escuro"; -/* Action title. Noun. Opens the user's WordPress.com dashboard in an external browser. */ +/* Action title. Noun. Opens the user's WordPress.com dashboard in an external browser. + Title for dashboard view on the My Site screen */ "Dashboard" = "Painel"; /* Title for a threat that includes the number of database rows affected */ @@ -2174,7 +2184,6 @@ translators: Block name. %s: The localized block name */ "Defaults for New Posts" = "Padrões para novos posts"; /* Delete - Delete button title Delete button title for the warning shown to the user when he refuses to re-login when the authToken is missing. Title for button that permanently deletes a media item (photo / video) Title for button that permanently deletes one or more media items (photos / videos) @@ -2533,7 +2542,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Each block has its own settings. To find them, tap on a block. Its settings will appear on the toolbar at the bottom of the screen." = "Cada bloco possui suas próprias configurações. Para encontrá-las, toque em um bloco. As configurações dele aparecerão na barra de ferramentas na parte inferior da tela."; -/* Edit the post. +/* Accessibility label for edit button to enable multi selection mode in the user's media library + Edit the post. Editing GIF alert default action button. Edits a Comment Edits the comment @@ -2740,6 +2750,9 @@ translators: Block name. %s: The localized block name */ /* Secondary message shown when there are no domains that match the user entered text. */ "Enter different words above and we'll look for an address that matches it." = "Digite palavras diferentes das acima e tentaremos encontrar um endereço relacionado a elas."; +/* Accessibility hint for edit button to enable multi selection mode in the user's media library */ +"Enter edit mode to enable multi select to delete" = "Enter edit mode to enable multi select to delete"; + /* (placeholder) Help enter WordPress password Placeholder of a field to type a password to protect the post. */ "Enter password" = "Digite a senha"; @@ -2790,9 +2803,6 @@ translators: Block name. %s: The localized block name */ /* There was an error activating a plugin, placeholder is the plugin name */ "Error activating %@." = "Erro ao ativar %@."; -/* Message shown when approving a Comment fails. */ -"Error approving comment" = "Erro ao aprovar comentário"; - /* Message displayed when approving a comment fails. */ "Error approving comment." = "Erro ao aprovar comentário."; @@ -2802,9 +2812,6 @@ translators: Block name. %s: The localized block name */ /* There was an error deactivating a plugin, placeholder is the plugin name */ "Error deactivating %@." = "Erro ao desativar %@."; -/* Message shown when deleting a Comment fails. */ -"Error deleting comment" = "Erro ao excluir comentário"; - /* Message displayed when deleting a comment fails. */ "Error deleting comment." = "Erro ao excluir comentário."; @@ -2832,9 +2839,6 @@ translators: Block name. %s: The localized block name */ /* Messaged displayed when fetching plugins failed. */ "Error loading plugins" = "Erro ao carregar os plugins"; -/* Message shown when marking a Comment as spam fails. */ -"Error marking comment as spam" = "Erro ao marcar comentário como spam"; - /* Message displayed when spamming a comment fails. */ "Error marking comment as spam." = "Erro ao marcar comentário como spam."; @@ -2874,12 +2878,12 @@ translators: Block name. %s: The localized block name */ /* Generic message shown when there was an error trying to re-send email verification. */ "Error sending verification email. Check your connection and try again." = "Erro ao enviar o e-mail de verificação. Verifique sua conexão e tente novamente."; +/* Message displayed when approving a comment fails. */ +"Error setting comment to approved." = "Error setting comment to approved."; + /* Message displayed when pending a comment fails. */ "Error setting comment to pending." = "Erro ao configurar o comentário como pendente."; -/* Message shown when unapproving a Comment fails. */ -"Error unapproving comment" = "Erro ao desaprovar comentário"; - /* There was an error updating a plugin, placeholder is the plugin name */ "Error updating %@." = "Erro ao atualizar %@."; @@ -3199,6 +3203,9 @@ translators: Block name. %s: The localized block name */ /* Next web page */ "Forward" = "Encaminhar"; +/* No comment provided by engineer. */ +"Four" = "Four"; + /* Browse free themes selection title */ "Free" = "Gratuito"; @@ -3235,6 +3242,9 @@ translators: Block name. %s: The localized block name */ /* translators: accessibility text. %s: gallery caption. */ "Gallery caption. %s" = "Legenda da galeria. %s"; +/* No comment provided by engineer. */ +"Gallery style" = "Gallery style"; + /* An example tag used in the login prologue screens. */ "Gardening" = "Jardinagem"; @@ -3853,6 +3863,9 @@ translators: Block name. %s: The localized block name */ User's Last Name */ "Last Name" = "Sobrenome"; +/* Content of a weekly roundup push notification containing stats about the user's site. The % markers are placeholders and will be replaced by the appropriate number of views, comments, and likes. The numbers indicate the order, so they can be rearranged if necessary – 1 is views, 2 is comments, 3 is likes. */ +"Last week you had %1$d views, %2$d comments and %3$d likes." = "Last week you had %1$d views, %2$d comments and %3$d likes."; + /* Insights latest post summary header */ "Latest Post Summary" = "Resumo dos posts mais recentes"; @@ -4442,6 +4455,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Navigates to customize the gradient" = "Ir para a personalização de gradiente"; +/* No comment provided by engineer. */ +"Navigates to layout selection screen" = "Navigates to layout selection screen"; + /* translators: %s: Select control button label e.g. Small translators: %s: Select control button label e.g. \"Button width\" */ "Navigates to select %s" = "Navegar para selecionar %s"; @@ -4513,6 +4529,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Table view title for the quick start section. */ "Next Steps" = "Próximos passos"; +/* Accessibility label for the button which shows the previous month in the monthly calendar view */ +"Next month" = "Next month"; + /* Accessibility label for the next notification button */ "Next notification" = "Próxima notificação"; @@ -4611,6 +4630,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ Text shown when there is no data to display in the stats list view. */ "No data yet" = "Nenhum dado ainda"; +/* Accessibility label for no currently selected range. */ +"No date range selected" = "No date range selected"; + /* Title for the view when there aren't any fixed threats to display */ "No fixed threats" = "Ameaças não corrigidas"; @@ -4886,12 +4908,18 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* A subtitle with more detailed info for the user when no WordPress.com sites could be found. */ "Once you create a WordPress.com site, you can reblog content that you like to your own site." = "Assim que você criar um site no WordPress.com, você poderá republicar o conteúdo que você curtir em seu próprio site."; +/* No comment provided by engineer. */ +"One" = "One"; + /* Subtitle displayed when the user has removed all Insights from display. */ "Only see the most relevant stats. Add insights to fit your needs." = "Ver apenas as estatísticas mais relevantes. Adicione informações para atender às suas necessidades."; /* No comment provided by engineer. */ "Only show excerpt" = "Mostrar apenas o resumo"; +/* Message telling the user that they've only enabled limited photo library permissions for the app. */ +"Only the selected photos you've given access to are available." = "Only the selected photos you've given access to are available."; + /* An informal exclaimation that means `something went wrong`. Title for the view when there's an error loading Activity Log Title for the view when there's an error loading scan status @@ -5478,6 +5506,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Description of a Quick Start Tour */ "Preview your new site to see what your visitors will see." = "Visualize seu novo site e veja como ele será apresentado aos seus visitantes."; +/* Accessibility label for the button which shows the previous month in the monthly calendar view */ +"Previous month" = "Previous month"; + /* Accessibility label for the previous notification button */ "Previous notification" = "Notificação anterior"; @@ -5775,7 +5806,7 @@ translators: %s: Select control button label e.g. \"Button width\" */ "Remove Site Icon" = "Remover ícone do site"; /* No comment provided by engineer. */ -"Remove as Featured Image " = "Remover imagem destacada"; +"Remove as Featured Image" = "Remove as Featured Image"; /* No comment provided by engineer. */ "Remove block" = "Remover bloco"; @@ -6235,6 +6266,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Register Domain - Domain contact information field placeholder for Country */ "Select Country" = "Selecione seu país"; +/* Title of button that allows the user to select more photos to access within the app */ +"Select More" = "Select More"; + /* Blog Picker's Title */ "Select Site" = "Selecionar Site"; @@ -6298,6 +6332,12 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Error message when user tries a no longer existent video media object. */ "Selected media is unavailable." = "A mídia selecionada não esta disponível."; +/* Accessibility label for summary of currently single date. %1$@ is the date */ +"Selected range: %1$@ only" = "Selected range: %1$@ only"; + +/* Accessibility label for summary of currently selected range. %1$@ is the start date, %2$@ is the end date. */ +"Selected range: %1$@ to %2$@" = "Selected range: %1$@ to %2$@"; + /* translators: %s: Select font size option value e.g: \"Selected: Large\". translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Selected: %s" = "Selecionado: %s"; @@ -6358,7 +6398,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Set Parent" = "Configurar ascendente"; /* No comment provided by engineer. */ -"Set as Featured Image " = "Definir como imagem destacada"; +"Set as Featured Image" = "Set as Featured Image"; /* Label for a button that sets the selected page as the site's Homepage */ "Set as Homepage" = "Definir como página inicial"; @@ -6576,6 +6616,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Title for the Language Picker View */ "Site Language" = "Idioma do site"; +/* Title for the site menu view on the My Site screen */ +"Site Menu" = "Site Menu"; + /* Describes a site redirect domain */ "Site Redirect" = "Redirecionamento de site"; @@ -6763,7 +6806,6 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Button title for Spam comment state. Marks comment as spam. - Spam Title of spam Comments filter. */ "Spam" = "Spam"; @@ -7106,7 +7148,8 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Description shown when a user logs in with Google but no matching WordPress.com account is found */ "The Google account \"%@\" doesn't match any account on WordPress.com" = "A conta do Google \"%@\" não corresponde à nenhuma conta do WordPress.com"; -/* Message of error prompt shown when a user tries to perform an action without an internet connection. */ +/* Error message shown when a media upload fails because the user isn't connected to the Internet. + Message of error prompt shown when a user tries to perform an action without an internet connection. */ "The Internet connection appears to be offline." = "A conexão com a internet parece estar offline."; /* Message informing the user that the site title can only be changed by an administrator user. */ @@ -7145,8 +7188,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Message shown when an image failed to load while trying to add it to the Media library. */ "The image could not be added to the Media Library." = "Não foi possível adicionar a imagem à biblioteca de mídia."; -/* Error message shown when a media upload fails because the user isn't connected to the internet. - Message of error prompt shown when a user tries to perform an action without an internet connection. */ +/* Message of error prompt shown when a user tries to perform an action without an internet connection. */ "The internet connection appears to be offline." = "A conexão de internet parece estar offline."; /* Message shown when an asset failed to load while trying to add it to the Media library. */ @@ -7182,6 +7224,12 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Description shown in alert to confirm skipping all quick start items */ "The quick start tour will guide you through building a basic site. Are you sure you want to skip? " = "O guia de início rápido te guiará pelos passos necessários para construir um site básico. Tem certeza de que deseja pular essa etapa? "; +/* A failure reason for when the request couldn't be serialized. */ +"The serialization of the request failed." = "The serialization of the request failed."; + +/* A failure reason for when the response couldn't be serialized. */ +"The serialization of the response failed." = "The serialization of the response failed."; + /* No comment provided by engineer. */ "The server returned an empty response. This usually means you need to increase the memory limit for your site." = "O servidor retornou uma resposta vazia. Isso geralmente significa que você precisa aumentar o limite de memória de seu site."; @@ -7282,6 +7330,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Error message informing the user that there was a problem blocking posts from a site from their reader. */ "There was a problem blocking posts from the specified site." = "Houve um problema ao bloquear os posts do site especificado."; +/* A general error message shown to the user when there was an API communication failure. */ +"There was a problem communicating with the site." = "There was a problem communicating with the site."; + /* Message for the warning shown to the user when the app realizes there should be an auth token but there isn't one. */ "There was a problem connecting to WordPress.com. Please log in again." = "Ocorreu um problema ao conectar com o WordPress.com. Por favor, faça login novamente."; @@ -7450,12 +7501,18 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Message displayed when a threat is ignored successfully. */ "Threat ignored." = "Ameaça ignorada."; +/* No comment provided by engineer. */ +"Three" = "Three"; + /* Thumbnail image size. Should be the same as in core WP. */ "Thumbnail" = "Miniatura"; /* Message shown if a thumbnail preview of a media item unavailable. */ "Thumbnail unavailable." = "Miniatura não disponível."; +/* No comment provided by engineer. */ +"Tiled gallery settings" = "Tiled gallery settings"; + /* Blog Writing Settings: Time Format Writing Time Format Settings Title */ "Time Format" = "Formato de hora"; @@ -7600,13 +7657,16 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* No comment provided by engineer. */ "Transform block…" = "Transformar bloco..."; -/* Accessibility label for trash buttons in nav bars +/* Accessibility label for trash button to delete items from the user's media library + Accessibility label for trash buttons in nav bars Button title for Trash comment state. - Trash button title Trashes a comment Trashes the comment */ "Trash" = "Lixeira"; +/* Accessibility hint for trash button to delete items from the user's media library */ +"Trash selected media" = "Trash selected media"; + /* Title of the trash page confirmation alert. */ "Trash this page?" = "Colocar este post na lixeira?"; @@ -7687,6 +7747,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Title for the setting to edit the twitter username used when sharing to twitter. */ "Twitter Username" = "Nome de usuário do Twitter"; +/* No comment provided by engineer. */ +"Two" = "Two"; + /* Type menu item in share extension. */ "Type" = "Type"; @@ -7783,7 +7846,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Unable to play video" = "Não foi possível reproduzir o vídeo"; /* No comment provided by engineer. */ -"Unable to read the WordPress site at that URL. Tap 'Need Help?' to view the FAQ." = "Não foi possível encontrar um site WordPress na URL. Toque em 'Precisa de ajuda?' para exibir as perguntas frequentes."; +"Unable to read the WordPress site at that URL. Tap 'Need more help?' to view the FAQ." = "Unable to read the WordPress site at that URL. Tap 'Need more help?' to view the FAQ."; /* Title for the Jetpack Restore Failed message. */ "Unable to restore your site" = "Não foi possível restaurar o site"; @@ -7866,6 +7929,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Underline" = "Sublinhado"; /* Button in the notification presented in Reader when a post removed from saved for later + Button title. Reverts a comment moderation action. Button title. Reverts the previous notification operation Revert an operation The title of an 'undo' button. Tapping the button moves a trashed page out of the trash folder. @@ -8524,9 +8588,13 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Blog Writing Settings: Weeks starts on */ "Week starts on" = "Semana começa em"; -/* Setting: indicates if the site reports its Weekly Roundup */ +/* Setting: indicates if the site reports its Weekly Roundup + Title of Weekly Roundup push notification */ "Weekly Roundup" = "Resumo semanal"; +/* Title of Weekly Roundup push notification. %@ is a placeholder and will be replaced with the title of one of the user's websites. */ +"Weekly Roundup: %@" = "Weekly Roundup: %@"; + /* Title of Weeks stats filter. */ "Weeks" = "Semanas"; @@ -8830,12 +8898,12 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* A text for subtitle label on Login epilogue screen */ "You can switch sites at any time." = "You can switch sites at any time."; +/* Prompt shown on the Blogging Reminders Settings screen. */ +"You can update this any time" = "You can update this any time"; + /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "Você pode atualizar isso a qualquer momento em Meu site > Configurações do site"; -/* Prompt shown on the Blogging Reminders Settings screen. */ -"You can update this anytime" = "Você pode atualizar isto a qualquer momento"; - /* No comment provided by engineer. */ "You cannot use that email address to signup. We are having problems with them blocking some of our email. Please use another email provider." = "Você não pode usar este endereço de e-mail para se inscrever. Esse provedor bloqueia alguns de nossos e-mails. Use outro provedor de e-mail."; @@ -9059,6 +9127,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* The default Jetpack view message */ "Your website credentials will not be stored and are used only for the purpose of installing Jetpack." = "Os dados de acesso ao seu site não serão armazenados e serão usados unicamente para instalar o Jetpack."; +/* Prompt displayed as part of the stats Weekly Roundup push notification. */ +"Your weekly roundup is ready, tap here to see the details!" = "Your weekly roundup is ready, tap here to see the details!"; + /* Describes the expected behavior when the user disables in-app notifications in Reader Comments. */ "You’re following this conversation. You will receive an email and a notification whenever a new comment is made." = "Você está seguindo esta conversa. Você receberá um e-mail e uma notificação sempre que um novo comentário for adicionado."; diff --git a/WordPress/Resources/pt.lproj/Localizable.strings b/WordPress/Resources/pt.lproj/Localizable.strings index b6a210fec1b2..8a9cdeb96dc0 100644 --- a/WordPress/Resources/pt.lproj/Localizable.strings +++ b/WordPress/Resources/pt.lproj/Localizable.strings @@ -468,7 +468,8 @@ translators: Block name. %s: The localized block name */ /* Label for the Activity Type filter button when there are more than 1 activity type selected */ "Activity Type (%1$d)" = "Activity Type (%1$d)"; -/* Remove asset from media picker list */ +/* Accessibility label for add button to add items to the user's media library + Remove asset from media picker list */ "Add" = "Adicionar"; /* Action for Media Picker to indicate selection of media. The argument in the string represents the number of elements (as numeric digits) selected */ @@ -564,6 +565,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Add menu item to children" = "Adicionar item de menu a item dependente"; +/* Accessibility hint for add button to add items to the user's media library */ +"Add new media" = "Add new media"; + /* Screen reader text for Menus button that adds a new menu to a site. */ "Add new menu" = "Add new menu"; @@ -704,6 +708,12 @@ translators: Block name. %s: The localized block name */ /* Title of a row displayed on the debug screen used to indicate whether crash logs should be forced to send, even if they otherwise wouldn't */ "Always Send Crash Logs" = "Always Send Crash Logs"; +/* A failure reason for when an error HTTP status code was returned from the site, with the specific error code. */ +"An HTTP error code %i was returned." = "An HTTP error code %i was returned."; + +/* A failure reason for when an error HTTP status code was returned from the site. */ +"An HTTP error code was returned." = "An HTTP error code was returned."; + /* Error message when loading failed because there's no connection */ "An active internet connection is required" = "An active internet connection is required"; @@ -756,6 +766,9 @@ translators: Block name. %s: The localized block name */ /* Text displayed when a stat section failed to load. */ "An error occurred." = "An error occurred."; +/* A failure reason for when the error that occured wasn't able to be determined. */ +"An unknown error occurred." = "An unknown error occurred."; + /* Error message shown when a media upload fails for unknown reason and the user should try again. */ "An unknown error occurred. Please try again." = "Ocorreu um erro desconhecido. Por favor, tente de novo."; @@ -817,18 +830,9 @@ translators: Block name. %s: The localized block name */ /* Message prompting the user to confirm that they want to disconnect Jetpack from the site. */ "Are you sure you want to disconnect Jetpack from the site?" = "Tem a certeza que quer desligar o Jetpack do site?"; -/* Message asking for confirmation before marking a comment as spam */ -"Are you sure you want to mark this comment as Spam?" = "Tem a certeza que quer marcar este comentário como spam?"; - -/* Message asking for confirmation before marking a comment as trash */ -"Are you sure you want to mark this comment as Trash?" = "Are you sure you want to mark this comment as Trash?"; - /* Message prompting the user to confirm that they want to permanently delete a group of media items. */ "Are you sure you want to permanently delete these items?" = "Tem a certeza que pretende eliminar permanentemente estes itens?"; -/* Message asking for confirmation on comment deletion */ -"Are you sure you want to permanently delete this comment?" = "Are you sure you want to permanently delete this comment?"; - /* Message prompting the user to confirm that they want to permanently delete a media item. Should match Calypso. */ "Are you sure you want to permanently delete this item?" = "Are you sure you want to permanently delete this item?"; @@ -1292,6 +1296,9 @@ translators: Block name. %s: The localized block name */ Main title */ "Change Password" = "Change Password"; +/* Title of button that takes user to the system Settings section for the app */ +"Change Settings" = "Change Settings"; + /* Title of an alert prompting the user that they are about to change the blog they are posting to. */ "Change Site" = "Mudar de site"; @@ -1587,6 +1594,9 @@ translators: Block name. %s: The localized block name */ My First Post */ "Comment on" = "Comment on"; +/* Message displayed when approving a comment succeeds. */ +"Comment set to approved." = "Comment set to approved."; + /* Message displayed when pending a comment succeeds. */ "Comment set to pending." = "Comment set to pending."; @@ -1677,8 +1687,7 @@ translators: Block name. %s: The localized block name */ /* Section title for the configure table section in the blog details screen */ "Configure" = "Configurar"; -/* Confirm - Verb. Title for Jetpack Restore confirm button. */ +/* Verb. Title for Jetpack Restore confirm button. */ "Confirm" = "Confirmar"; /* Close Account alert title */ @@ -2117,7 +2126,8 @@ translators: Block name. %s: The localized block name */ /* Title for the app appearance setting for dark mode */ "Dark" = "Dark"; -/* Action title. Noun. Opens the user's WordPress.com dashboard in an external browser. */ +/* Action title. Noun. Opens the user's WordPress.com dashboard in an external browser. + Title for dashboard view on the My Site screen */ "Dashboard" = "Painel"; /* Title for a threat that includes the number of database rows affected */ @@ -2174,7 +2184,6 @@ translators: Block name. %s: The localized block name */ "Defaults for New Posts" = "Por omissão para novos artigos"; /* Delete - Delete button title Delete button title for the warning shown to the user when he refuses to re-login when the authToken is missing. Title for button that permanently deletes a media item (photo / video) Title for button that permanently deletes one or more media items (photos / videos) @@ -2533,7 +2542,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Each block has its own settings. To find them, tap on a block. Its settings will appear on the toolbar at the bottom of the screen." = "Each block has its own settings. To find them, tap on a block. Its settings will appear on the toolbar at the bottom of the screen."; -/* Edit the post. +/* Accessibility label for edit button to enable multi selection mode in the user's media library + Edit the post. Editing GIF alert default action button. Edits a Comment Edits the comment @@ -2740,6 +2750,9 @@ translators: Block name. %s: The localized block name */ /* Secondary message shown when there are no domains that match the user entered text. */ "Enter different words above and we'll look for an address that matches it." = "Enter different words above and we'll look for an address that matches it."; +/* Accessibility hint for edit button to enable multi selection mode in the user's media library */ +"Enter edit mode to enable multi select to delete" = "Enter edit mode to enable multi select to delete"; + /* (placeholder) Help enter WordPress password Placeholder of a field to type a password to protect the post. */ "Enter password" = "Insira a senha"; @@ -2790,9 +2803,6 @@ translators: Block name. %s: The localized block name */ /* There was an error activating a plugin, placeholder is the plugin name */ "Error activating %@." = "Error activating %@."; -/* Message shown when approving a Comment fails. */ -"Error approving comment" = "Error approving comment"; - /* Message displayed when approving a comment fails. */ "Error approving comment." = "Error approving comment."; @@ -2802,9 +2812,6 @@ translators: Block name. %s: The localized block name */ /* There was an error deactivating a plugin, placeholder is the plugin name */ "Error deactivating %@." = "Error deactivating %@."; -/* Message shown when deleting a Comment fails. */ -"Error deleting comment" = "Error deleting comment"; - /* Message displayed when deleting a comment fails. */ "Error deleting comment." = "Error deleting comment."; @@ -2832,9 +2839,6 @@ translators: Block name. %s: The localized block name */ /* Messaged displayed when fetching plugins failed. */ "Error loading plugins" = "Error loading plugins"; -/* Message shown when marking a Comment as spam fails. */ -"Error marking comment as spam" = "Error marking comment as spam"; - /* Message displayed when spamming a comment fails. */ "Error marking comment as spam." = "Error marking comment as spam."; @@ -2874,12 +2878,12 @@ translators: Block name. %s: The localized block name */ /* Generic message shown when there was an error trying to re-send email verification. */ "Error sending verification email. Check your connection and try again." = "Error sending verification email. Check your connection and try again."; +/* Message displayed when approving a comment fails. */ +"Error setting comment to approved." = "Error setting comment to approved."; + /* Message displayed when pending a comment fails. */ "Error setting comment to pending." = "Error setting comment to pending."; -/* Message shown when unapproving a Comment fails. */ -"Error unapproving comment" = "Error unapproving comment"; - /* There was an error updating a plugin, placeholder is the plugin name */ "Error updating %@." = "Error updating %@."; @@ -3199,6 +3203,9 @@ translators: Block name. %s: The localized block name */ /* Next web page */ "Forward" = "Reencaminhar"; +/* No comment provided by engineer. */ +"Four" = "Four"; + /* Browse free themes selection title */ "Free" = "Gratuitos"; @@ -3235,6 +3242,9 @@ translators: Block name. %s: The localized block name */ /* translators: accessibility text. %s: gallery caption. */ "Gallery caption. %s" = "Gallery caption. %s"; +/* No comment provided by engineer. */ +"Gallery style" = "Gallery style"; + /* An example tag used in the login prologue screens. */ "Gardening" = "Gardening"; @@ -3853,6 +3863,9 @@ translators: Block name. %s: The localized block name */ User's Last Name */ "Last Name" = "Apelido"; +/* Content of a weekly roundup push notification containing stats about the user's site. The % markers are placeholders and will be replaced by the appropriate number of views, comments, and likes. The numbers indicate the order, so they can be rearranged if necessary – 1 is views, 2 is comments, 3 is likes. */ +"Last week you had %1$d views, %2$d comments and %3$d likes." = "Last week you had %1$d views, %2$d comments and %3$d likes."; + /* Insights latest post summary header */ "Latest Post Summary" = "Resumo do último conteúdo"; @@ -4442,6 +4455,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Navigates to customize the gradient" = "Navigates to customize the gradient"; +/* No comment provided by engineer. */ +"Navigates to layout selection screen" = "Navigates to layout selection screen"; + /* translators: %s: Select control button label e.g. Small translators: %s: Select control button label e.g. \"Button width\" */ "Navigates to select %s" = "Navigates to select %s"; @@ -4513,6 +4529,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Table view title for the quick start section. */ "Next Steps" = "Next Steps"; +/* Accessibility label for the button which shows the previous month in the monthly calendar view */ +"Next month" = "Next month"; + /* Accessibility label for the next notification button */ "Next notification" = "Notificação seguinte"; @@ -4611,6 +4630,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ Text shown when there is no data to display in the stats list view. */ "No data yet" = "No data yet"; +/* Accessibility label for no currently selected range. */ +"No date range selected" = "No date range selected"; + /* Title for the view when there aren't any fixed threats to display */ "No fixed threats" = "No fixed threats"; @@ -4886,12 +4908,18 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* A subtitle with more detailed info for the user when no WordPress.com sites could be found. */ "Once you create a WordPress.com site, you can reblog content that you like to your own site." = "Once you create a WordPress.com site, you can reblog content that you like to your own site."; +/* No comment provided by engineer. */ +"One" = "One"; + /* Subtitle displayed when the user has removed all Insights from display. */ "Only see the most relevant stats. Add insights to fit your needs." = "Only see the most relevant stats. Add insights to fit your needs."; /* No comment provided by engineer. */ "Only show excerpt" = "Only show excerpt"; +/* Message telling the user that they've only enabled limited photo library permissions for the app. */ +"Only the selected photos you've given access to are available." = "Only the selected photos you've given access to are available."; + /* An informal exclaimation that means `something went wrong`. Title for the view when there's an error loading Activity Log Title for the view when there's an error loading scan status @@ -5478,6 +5506,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Description of a Quick Start Tour */ "Preview your new site to see what your visitors will see." = "Preview your new site to see what your visitors will see."; +/* Accessibility label for the button which shows the previous month in the monthly calendar view */ +"Previous month" = "Previous month"; + /* Accessibility label for the previous notification button */ "Previous notification" = "Notificação anterior"; @@ -5775,7 +5806,7 @@ translators: %s: Select control button label e.g. \"Button width\" */ "Remove Site Icon" = "Remover ícone do site"; /* No comment provided by engineer. */ -"Remove as Featured Image " = "Remove as Featured Image "; +"Remove as Featured Image" = "Remove as Featured Image"; /* No comment provided by engineer. */ "Remove block" = "Remove block"; @@ -6235,6 +6266,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Register Domain - Domain contact information field placeholder for Country */ "Select Country" = "Seleccionar país"; +/* Title of button that allows the user to select more photos to access within the app */ +"Select More" = "Select More"; + /* Blog Picker's Title */ "Select Site" = "Seleccionar site"; @@ -6298,6 +6332,12 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Error message when user tries a no longer existent video media object. */ "Selected media is unavailable." = "Selected media is unavailable."; +/* Accessibility label for summary of currently single date. %1$@ is the date */ +"Selected range: %1$@ only" = "Selected range: %1$@ only"; + +/* Accessibility label for summary of currently selected range. %1$@ is the start date, %2$@ is the end date. */ +"Selected range: %1$@ to %2$@" = "Selected range: %1$@ to %2$@"; + /* translators: %s: Select font size option value e.g: \"Selected: Large\". translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Selected: %s" = "Selected: %s"; @@ -6358,7 +6398,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Set Parent" = "Set Parent"; /* No comment provided by engineer. */ -"Set as Featured Image " = "Set as Featured Image "; +"Set as Featured Image" = "Set as Featured Image"; /* Label for a button that sets the selected page as the site's Homepage */ "Set as Homepage" = "Set as Homepage"; @@ -6576,6 +6616,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Title for the Language Picker View */ "Site Language" = "Idioma do site"; +/* Title for the site menu view on the My Site screen */ +"Site Menu" = "Site Menu"; + /* Describes a site redirect domain */ "Site Redirect" = "Redireccionamento de site"; @@ -6763,7 +6806,6 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Button title for Spam comment state. Marks comment as spam. - Spam Title of spam Comments filter. */ "Spam" = "Spam"; @@ -7106,7 +7148,8 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Description shown when a user logs in with Google but no matching WordPress.com account is found */ "The Google account \"%@\" doesn't match any account on WordPress.com" = "The Google account \"%@\" doesn't match any account on WordPress.com"; -/* Message of error prompt shown when a user tries to perform an action without an internet connection. */ +/* Error message shown when a media upload fails because the user isn't connected to the Internet. + Message of error prompt shown when a user tries to perform an action without an internet connection. */ "The Internet connection appears to be offline." = "A ligação à internet parece estar em baixo."; /* Message informing the user that the site title can only be changed by an administrator user. */ @@ -7145,8 +7188,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Message shown when an image failed to load while trying to add it to the Media library. */ "The image could not be added to the Media Library." = "Não foi possível adicionar a imagem à biblioteca multimédia."; -/* Error message shown when a media upload fails because the user isn't connected to the internet. - Message of error prompt shown when a user tries to perform an action without an internet connection. */ +/* Message of error prompt shown when a user tries to perform an action without an internet connection. */ "The internet connection appears to be offline." = "Parece não existir conexão à internet."; /* Message shown when an asset failed to load while trying to add it to the Media library. */ @@ -7182,6 +7224,12 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Description shown in alert to confirm skipping all quick start items */ "The quick start tour will guide you through building a basic site. Are you sure you want to skip? " = "The quick start tour will guide you through building a basic site. Are you sure you want to skip? "; +/* A failure reason for when the request couldn't be serialized. */ +"The serialization of the request failed." = "The serialization of the request failed."; + +/* A failure reason for when the response couldn't be serialized. */ +"The serialization of the response failed." = "The serialization of the response failed."; + /* No comment provided by engineer. */ "The server returned an empty response. This usually means you need to increase the memory limit for your site." = "O servidor devolveu uma resposta em branco. Isto geralmente significa que é preciso aumentar o limite de memória no seu site."; @@ -7282,6 +7330,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Error message informing the user that there was a problem blocking posts from a site from their reader. */ "There was a problem blocking posts from the specified site." = "There was a problem blocking posts from the specified site."; +/* A general error message shown to the user when there was an API communication failure. */ +"There was a problem communicating with the site." = "There was a problem communicating with the site."; + /* Message for the warning shown to the user when the app realizes there should be an auth token but there isn't one. */ "There was a problem connecting to WordPress.com. Please log in again." = "Ocorreu um problema ao ligar a WordPress.com. Por favor inicie sessão de novo."; @@ -7450,12 +7501,18 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Message displayed when a threat is ignored successfully. */ "Threat ignored." = "Threat ignored."; +/* No comment provided by engineer. */ +"Three" = "Three"; + /* Thumbnail image size. Should be the same as in core WP. */ "Thumbnail" = "Miniatura"; /* Message shown if a thumbnail preview of a media item unavailable. */ "Thumbnail unavailable." = "Miniaturas indisponíveis."; +/* No comment provided by engineer. */ +"Tiled gallery settings" = "Tiled gallery settings"; + /* Blog Writing Settings: Time Format Writing Time Format Settings Title */ "Time Format" = "Time Format"; @@ -7600,13 +7657,16 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* No comment provided by engineer. */ "Transform block…" = "Transform block…"; -/* Accessibility label for trash buttons in nav bars +/* Accessibility label for trash button to delete items from the user's media library + Accessibility label for trash buttons in nav bars Button title for Trash comment state. - Trash button title Trashes a comment Trashes the comment */ "Trash" = "Lixo"; +/* Accessibility hint for trash button to delete items from the user's media library */ +"Trash selected media" = "Trash selected media"; + /* Title of the trash page confirmation alert. */ "Trash this page?" = "Trash this page?"; @@ -7687,6 +7747,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Title for the setting to edit the twitter username used when sharing to twitter. */ "Twitter Username" = "Nome de utilizador do Twitter"; +/* No comment provided by engineer. */ +"Two" = "Two"; + /* Type menu item in share extension. */ "Type" = "Type"; @@ -7783,7 +7846,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Unable to play video" = "Unable to play video"; /* No comment provided by engineer. */ -"Unable to read the WordPress site at that URL. Tap 'Need Help?' to view the FAQ." = "Unable to read the WordPress site at that URL. Tap 'Need Help?' to view the FAQ."; +"Unable to read the WordPress site at that URL. Tap 'Need more help?' to view the FAQ." = "Unable to read the WordPress site at that URL. Tap 'Need more help?' to view the FAQ."; /* Title for the Jetpack Restore Failed message. */ "Unable to restore your site" = "Unable to restore your site"; @@ -7866,6 +7929,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Underline" = "Sublinhado"; /* Button in the notification presented in Reader when a post removed from saved for later + Button title. Reverts a comment moderation action. Button title. Reverts the previous notification operation Revert an operation The title of an 'undo' button. Tapping the button moves a trashed page out of the trash folder. @@ -8524,9 +8588,13 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Blog Writing Settings: Weeks starts on */ "Week starts on" = "Week starts on"; -/* Setting: indicates if the site reports its Weekly Roundup */ +/* Setting: indicates if the site reports its Weekly Roundup + Title of Weekly Roundup push notification */ "Weekly Roundup" = "Weekly Roundup"; +/* Title of Weekly Roundup push notification. %@ is a placeholder and will be replaced with the title of one of the user's websites. */ +"Weekly Roundup: %@" = "Weekly Roundup: %@"; + /* Title of Weeks stats filter. */ "Weeks" = "Semanas"; @@ -8830,12 +8898,12 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* A text for subtitle label on Login epilogue screen */ "You can switch sites at any time." = "You can switch sites at any time."; +/* Prompt shown on the Blogging Reminders Settings screen. */ +"You can update this any time" = "You can update this any time"; + /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "You can update this any time via My Site > Site Settings"; -/* Prompt shown on the Blogging Reminders Settings screen. */ -"You can update this anytime" = "You can update this anytime"; - /* No comment provided by engineer. */ "You cannot use that email address to signup. We are having problems with them blocking some of our email. Please use another email provider." = "Não pode usar esse email para se registar, uma vez que esse provedor bloqueia algumas das nossas mensagens. Por favor use outro."; @@ -9059,6 +9127,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* The default Jetpack view message */ "Your website credentials will not be stored and are used only for the purpose of installing Jetpack." = "Your website credentials will not be stored and are used only for the purpose of installing Jetpack."; +/* Prompt displayed as part of the stats Weekly Roundup push notification. */ +"Your weekly roundup is ready, tap here to see the details!" = "Your weekly roundup is ready, tap here to see the details!"; + /* Describes the expected behavior when the user disables in-app notifications in Reader Comments. */ "You’re following this conversation. You will receive an email and a notification whenever a new comment is made." = "You’re following this conversation. You will receive an email and a notification whenever a new comment is made."; diff --git a/WordPress/Resources/ro.lproj/Localizable.strings b/WordPress/Resources/ro.lproj/Localizable.strings index 956fb0d29704..b4827f62f563 100644 --- a/WordPress/Resources/ro.lproj/Localizable.strings +++ b/WordPress/Resources/ro.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2022-01-19 11:45:07+0000 */ +/* Translation-Revision-Date: 2022-01-25 13:27:21+0000 */ /* Plural-Forms: nplurals=3; plural=(n == 1) ? 0 : ((n == 0 || n % 100 >= 2 && n % 100 <= 19) ? 1 : 2); */ /* Generator: GlotPress/3.0.0-alpha.2 */ /* Language: ro */ @@ -468,7 +468,8 @@ translators: Block name. %s: The localized block name */ /* Label for the Activity Type filter button when there are more than 1 activity type selected */ "Activity Type (%1$d)" = "Tip de activitate (%1$d)"; -/* Remove asset from media picker list */ +/* Accessibility label for add button to add items to the user's media library + Remove asset from media picker list */ "Add" = "Adaugă"; /* Action for Media Picker to indicate selection of media. The argument in the string represents the number of elements (as numeric digits) selected */ @@ -564,6 +565,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Add menu item to children" = "Adaugă element meniu la copil"; +/* Accessibility hint for add button to add items to the user's media library */ +"Add new media" = "Adaugă element media nou"; + /* Screen reader text for Menus button that adds a new menu to a site. */ "Add new menu" = "Adaugă meniu nou"; @@ -704,6 +708,12 @@ translators: Block name. %s: The localized block name */ /* Title of a row displayed on the debug screen used to indicate whether crash logs should be forced to send, even if they otherwise wouldn't */ "Always Send Crash Logs" = "Trimite întotdeauna jurnalele de erori fatale"; +/* A failure reason for when an error HTTP status code was returned from the site, with the specific error code. */ +"An HTTP error code %i was returned." = "A fost returnat un cod de eroare HTTP %i."; + +/* A failure reason for when an error HTTP status code was returned from the site. */ +"An HTTP error code was returned." = "A fost returnat un cod de eroare HTTP."; + /* Error message when loading failed because there's no connection */ "An active internet connection is required" = "Este obligatorie o conexiune activă la internet"; @@ -756,6 +766,9 @@ translators: Block name. %s: The localized block name */ /* Text displayed when a stat section failed to load. */ "An error occurred." = "A apărut o eroare."; +/* A failure reason for when the error that occured wasn't able to be determined. */ +"An unknown error occurred." = "A apărut o eroare necunoscută."; + /* Error message shown when a media upload fails for unknown reason and the user should try again. */ "An unknown error occurred. Please try again." = "A apărut o eroare necunoscută. Te rog încearcă din nou."; @@ -817,18 +830,9 @@ translators: Block name. %s: The localized block name */ /* Message prompting the user to confirm that they want to disconnect Jetpack from the site. */ "Are you sure you want to disconnect Jetpack from the site?" = "Sigur vrei să deconectezi Jetpack de pe site?"; -/* Message asking for confirmation before marking a comment as spam */ -"Are you sure you want to mark this comment as Spam?" = "Ești sigur că vrei să marchezi acest comentariu ca spam?"; - -/* Message asking for confirmation before marking a comment as trash */ -"Are you sure you want to mark this comment as Trash?" = "Sigur vrei să marchezi acest comentariu ca aruncat la gunoi?"; - /* Message prompting the user to confirm that they want to permanently delete a group of media items. */ "Are you sure you want to permanently delete these items?" = "Sigur vrei să ștergi definitiv aceste elemente?"; -/* Message asking for confirmation on comment deletion */ -"Are you sure you want to permanently delete this comment?" = "Sigur vrei să ștergi definitiv acest comentariu?"; - /* Message prompting the user to confirm that they want to permanently delete a media item. Should match Calypso. */ "Are you sure you want to permanently delete this item?" = "Sigur vrei să ștergi definitiv acest element?"; @@ -1292,6 +1296,9 @@ translators: Block name. %s: The localized block name */ Main title */ "Change Password" = "Schimbă parola"; +/* Title of button that takes user to the system Settings section for the app */ +"Change Settings" = "Modifică setările"; + /* Title of an alert prompting the user that they are about to change the blog they are posting to. */ "Change Site" = "Schimbă site-ul"; @@ -1587,6 +1594,9 @@ translators: Block name. %s: The localized block name */ My First Post */ "Comment on" = "Comentariu la"; +/* Message displayed when approving a comment succeeds. */ +"Comment set to approved." = "Comentariul este setat ca aprobat."; + /* Message displayed when pending a comment succeeds. */ "Comment set to pending." = "Comentariu pus în așteptare."; @@ -1677,8 +1687,7 @@ translators: Block name. %s: The localized block name */ /* Section title for the configure table section in the blog details screen */ "Configure" = "Configurare"; -/* Confirm - Verb. Title for Jetpack Restore confirm button. */ +/* Verb. Title for Jetpack Restore confirm button. */ "Confirm" = "Confirmă"; /* Close Account alert title */ @@ -2117,7 +2126,8 @@ translators: Block name. %s: The localized block name */ /* Title for the app appearance setting for dark mode */ "Dark" = "Întunecată"; -/* Action title. Noun. Opens the user's WordPress.com dashboard in an external browser. */ +/* Action title. Noun. Opens the user's WordPress.com dashboard in an external browser. + Title for dashboard view on the My Site screen */ "Dashboard" = "Panou control"; /* Title for a threat that includes the number of database rows affected */ @@ -2174,7 +2184,6 @@ translators: Block name. %s: The localized block name */ "Defaults for New Posts" = "Implicite pentru articole noi"; /* Delete - Delete button title Delete button title for the warning shown to the user when he refuses to re-login when the authToken is missing. Title for button that permanently deletes a media item (photo / video) Title for button that permanently deletes one or more media items (photos / videos) @@ -2533,7 +2542,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Each block has its own settings. To find them, tap on a block. Its settings will appear on the toolbar at the bottom of the screen." = "Fiecare bloc are setări proprii. Pentru a le găsi, atinge un bloc. Setările lui vor apărea în bara de unelte din partea de jos a ecranului."; -/* Edit the post. +/* Accessibility label for edit button to enable multi selection mode in the user's media library + Edit the post. Editing GIF alert default action button. Edits a Comment Edits the comment @@ -2743,6 +2753,9 @@ translators: Block name. %s: The localized block name */ /* Secondary message shown when there are no domains that match the user entered text. */ "Enter different words above and we'll look for an address that matches it." = "Introdu cuvinte diferite mai sus și vom căuta o adresă care se potrivește cu ele."; +/* Accessibility hint for edit button to enable multi selection mode in the user's media library */ +"Enter edit mode to enable multi select to delete" = "Intră în modul editare pentru a activa selectarea mai multor elemente pentru ștergere"; + /* (placeholder) Help enter WordPress password Placeholder of a field to type a password to protect the post. */ "Enter password" = "Introdu parola"; @@ -2793,9 +2806,6 @@ translators: Block name. %s: The localized block name */ /* There was an error activating a plugin, placeholder is the plugin name */ "Error activating %@." = "Eroare la activarea %@."; -/* Message shown when approving a Comment fails. */ -"Error approving comment" = "Eroare la aprobarea comentariului"; - /* Message displayed when approving a comment fails. */ "Error approving comment." = "Eroare la aprobarea comentariului."; @@ -2805,9 +2815,6 @@ translators: Block name. %s: The localized block name */ /* There was an error deactivating a plugin, placeholder is the plugin name */ "Error deactivating %@." = "Eroare la dezactivarea %@."; -/* Message shown when deleting a Comment fails. */ -"Error deleting comment" = "Eroare la ștergerea comentariului"; - /* Message displayed when deleting a comment fails. */ "Error deleting comment." = "Eroare la ștergerea comentariului."; @@ -2835,9 +2842,6 @@ translators: Block name. %s: The localized block name */ /* Messaged displayed when fetching plugins failed. */ "Error loading plugins" = "Eroare la încărcarea modulelor"; -/* Message shown when marking a Comment as spam fails. */ -"Error marking comment as spam" = "Eroare la marcarea comentariului ca spam"; - /* Message displayed when spamming a comment fails. */ "Error marking comment as spam." = "Eroare la marcarea comentariului ca spam."; @@ -2877,12 +2881,12 @@ translators: Block name. %s: The localized block name */ /* Generic message shown when there was an error trying to re-send email verification. */ "Error sending verification email. Check your connection and try again." = "Eroare la trimiterea emailului de confirmare. Verifică-ți conexiunea și reîncearcă."; +/* Message displayed when approving a comment fails. */ +"Error setting comment to approved." = "Eroare la setarea comentariului ca aprobat."; + /* Message displayed when pending a comment fails. */ "Error setting comment to pending." = "Eroare la punerea în așteptare a comentariului."; -/* Message shown when unapproving a Comment fails. */ -"Error unapproving comment" = "Eroare la refuzarea comentariului"; - /* There was an error updating a plugin, placeholder is the plugin name */ "Error updating %@." = "Eroare la actualizarea %@."; @@ -3202,6 +3206,9 @@ translators: Block name. %s: The localized block name */ /* Next web page */ "Forward" = "Înaintează"; +/* No comment provided by engineer. */ +"Four" = "Patru"; + /* Browse free themes selection title */ "Free" = "Gratuite"; @@ -3238,6 +3245,9 @@ translators: Block name. %s: The localized block name */ /* translators: accessibility text. %s: gallery caption. */ "Gallery caption. %s" = "Text asociat galerie. %s"; +/* No comment provided by engineer. */ +"Gallery style" = "Stil galerie"; + /* An example tag used in the login prologue screens. */ "Gardening" = "Grădinărit"; @@ -3856,6 +3866,9 @@ translators: Block name. %s: The localized block name */ User's Last Name */ "Last Name" = "Nume"; +/* Content of a weekly roundup push notification containing stats about the user's site. The % markers are placeholders and will be replaced by the appropriate number of views, comments, and likes. The numbers indicate the order, so they can be rearranged if necessary – 1 is views, 2 is comments, 3 is likes. */ +"Last week you had %1$d views, %2$d comments and %3$d likes." = "Săptămâna trecută ai avut %1$d vizualizări, %2$d comentarii și %3$d aprecieri."; + /* Insights latest post summary header */ "Latest Post Summary" = "Rezumat cu ultimele articole"; @@ -4445,6 +4458,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Navigates to customize the gradient" = "Navighează pentru a personaliza gradientul"; +/* No comment provided by engineer. */ +"Navigates to layout selection screen" = "Navighează la ecranul de selectare a aranjamentului"; + /* translators: %s: Select control button label e.g. Small translators: %s: Select control button label e.g. \"Button width\" */ "Navigates to select %s" = "Navighează pentru a selecta %s"; @@ -4516,6 +4532,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Table view title for the quick start section. */ "Next Steps" = "Pașii următori"; +/* Accessibility label for the button which shows the previous month in the monthly calendar view */ +"Next month" = "Luna viitoare"; + /* Accessibility label for the next notification button */ "Next notification" = "Notificare următoare"; @@ -4614,6 +4633,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ Text shown when there is no data to display in the stats list view. */ "No data yet" = "Încă nu există date"; +/* Accessibility label for no currently selected range. */ +"No date range selected" = "Nu ai selectat niciun interval de date"; + /* Title for the view when there aren't any fixed threats to display */ "No fixed threats" = "Nicio amenințare înlăturată"; @@ -4889,12 +4911,18 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* A subtitle with more detailed info for the user when no WordPress.com sites could be found. */ "Once you create a WordPress.com site, you can reblog content that you like to your own site." = "După ce ai creat un site WordPress.com, poți republica un conținut care îți place pe propriul site."; +/* No comment provided by engineer. */ +"One" = "Una"; + /* Subtitle displayed when the user has removed all Insights from display. */ "Only see the most relevant stats. Add insights to fit your needs." = "Vezi numai statisticile cele mai relevante. Adaugă Perspective care se potrivesc cu nevoile tale."; /* No comment provided by engineer. */ "Only show excerpt" = "Arată numai rezumatul"; +/* Message telling the user that they've only enabled limited photo library permissions for the app. */ +"Only the selected photos you've given access to are available." = "Sunt disponibile numai fotografiile selectate pentru care ai dat acces."; + /* An informal exclaimation that means `something went wrong`. Title for the view when there's an error loading Activity Log Title for the view when there's an error loading scan status @@ -5481,6 +5509,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Description of a Quick Start Tour */ "Preview your new site to see what your visitors will see." = "Previzualizează-ți noul site pentru a înțelege ceea ce vor vedea vizitatorii tăi."; +/* Accessibility label for the button which shows the previous month in the monthly calendar view */ +"Previous month" = "Luna trecută"; + /* Accessibility label for the previous notification button */ "Previous notification" = "Notificare anterioară"; @@ -5778,7 +5809,7 @@ translators: %s: Select control button label e.g. \"Button width\" */ "Remove Site Icon" = "Înlătură iconul site-ului"; /* No comment provided by engineer. */ -"Remove as Featured Image " = "Înlătură imaginea, ca imagine reprezentativă"; +"Remove as Featured Image" = "Înlătură imaginea, ca imagine reprezentativă"; /* No comment provided by engineer. */ "Remove block" = "Înlătură blocul"; @@ -6238,6 +6269,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Register Domain - Domain contact information field placeholder for Country */ "Select Country" = "Selectează țara"; +/* Title of button that allows the user to select more photos to access within the app */ +"Select More" = "Selectează mai multe"; + /* Blog Picker's Title */ "Select Site" = "Selectează site-ul"; @@ -6301,6 +6335,12 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Error message when user tries a no longer existent video media object. */ "Selected media is unavailable." = "Media selectată este indisponibilă."; +/* Accessibility label for summary of currently single date. %1$@ is the date */ +"Selected range: %1$@ only" = "Interval selectat: numai %1$@"; + +/* Accessibility label for summary of currently selected range. %1$@ is the start date, %2$@ is the end date. */ +"Selected range: %1$@ to %2$@" = "Interval selectat: de la %1$@ până la %2$@"; + /* translators: %s: Select font size option value e.g: \"Selected: Large\". translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Selected: %s" = "Selectat: %s"; @@ -6361,7 +6401,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Set Parent" = "Setează părinte"; /* No comment provided by engineer. */ -"Set as Featured Image " = "Setează ca imagine reprezentativă"; +"Set as Featured Image" = "Setează ca imagine reprezentativă"; /* Label for a button that sets the selected page as the site's Homepage */ "Set as Homepage" = "Setează ca prima pagină"; @@ -6579,6 +6619,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Title for the Language Picker View */ "Site Language" = "Limbă site"; +/* Title for the site menu view on the My Site screen */ +"Site Menu" = "Meniu site"; + /* Describes a site redirect domain */ "Site Redirect" = "Redirecționare site"; @@ -6766,7 +6809,6 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Button title for Spam comment state. Marks comment as spam. - Spam Title of spam Comments filter. */ "Spam" = "Spam"; @@ -7109,7 +7151,8 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Description shown when a user logs in with Google but no matching WordPress.com account is found */ "The Google account \"%@\" doesn't match any account on WordPress.com" = "Contul Google „%@” nu se potrivește cu niciun cont de pe WordPress.com"; -/* Message of error prompt shown when a user tries to perform an action without an internet connection. */ +/* Error message shown when a media upload fails because the user isn't connected to the Internet. + Message of error prompt shown when a user tries to perform an action without an internet connection. */ "The Internet connection appears to be offline." = "Conexiunea la internet pare să fie oprită."; /* Message informing the user that the site title can only be changed by an administrator user. */ @@ -7148,8 +7191,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Message shown when an image failed to load while trying to add it to the Media library. */ "The image could not be added to the Media Library." = "Imaginea nu a putut fi adăugată în Biblioteca media."; -/* Error message shown when a media upload fails because the user isn't connected to the internet. - Message of error prompt shown when a user tries to perform an action without an internet connection. */ +/* Message of error prompt shown when a user tries to perform an action without an internet connection. */ "The internet connection appears to be offline." = "Conexiunea la internet pare să fie decuplată."; /* Message shown when an asset failed to load while trying to add it to the Media library. */ @@ -7185,6 +7227,12 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Description shown in alert to confirm skipping all quick start items */ "The quick start tour will guide you through building a basic site. Are you sure you want to skip? " = "Inițierea rapidă te va conduce la construirea unui site de bază. Sigur vrei să sari peste ea?"; +/* A failure reason for when the request couldn't be serialized. */ +"The serialization of the request failed." = "Serializarea cererii a eșuat."; + +/* A failure reason for when the response couldn't be serialized. */ +"The serialization of the response failed." = "Serializarea răspunsului a eșuat."; + /* No comment provided by engineer. */ "The server returned an empty response. This usually means you need to increase the memory limit for your site." = "Serverul a returnat un răspuns gol. De obicei, asta înseamnă că trebuie să mărești limita de memorie pentru site-ul tău."; @@ -7285,6 +7333,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Error message informing the user that there was a problem blocking posts from a site from their reader. */ "There was a problem blocking posts from the specified site." = "A fost o problemă la blocarea articolelor de pe site-ul specificat."; +/* A general error message shown to the user when there was an API communication failure. */ +"There was a problem communicating with the site." = "A fost o problemă de comunicare cu site-ul."; + /* Message for the warning shown to the user when the app realizes there should be an auth token but there isn't one. */ "There was a problem connecting to WordPress.com. Please log in again." = "A fost o problemă de conectare la WordPress.com. Te rog autentifică-te din nou."; @@ -7453,12 +7504,18 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Message displayed when a threat is ignored successfully. */ "Threat ignored." = "Amenințarea a fost ignorată."; +/* No comment provided by engineer. */ +"Three" = "Trei"; + /* Thumbnail image size. Should be the same as in core WP. */ "Thumbnail" = "Miniatură"; /* Message shown if a thumbnail preview of a media item unavailable. */ "Thumbnail unavailable." = "Miniatură indisponibilă"; +/* No comment provided by engineer. */ +"Tiled gallery settings" = "Setări galerii placate"; + /* Blog Writing Settings: Time Format Writing Time Format Settings Title */ "Time Format" = "Format oră"; @@ -7603,13 +7660,16 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* No comment provided by engineer. */ "Transform block…" = "Transformă blocul..."; -/* Accessibility label for trash buttons in nav bars +/* Accessibility label for trash button to delete items from the user's media library + Accessibility label for trash buttons in nav bars Button title for Trash comment state. - Trash button title Trashes a comment Trashes the comment */ "Trash" = "Coș de gunoi"; +/* Accessibility hint for trash button to delete items from the user's media library */ +"Trash selected media" = "Aruncă la gunoi elementele media selectate"; + /* Title of the trash page confirmation alert. */ "Trash this page?" = "Arunci la gunoi această pagină?"; @@ -7690,6 +7750,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Title for the setting to edit the twitter username used when sharing to twitter. */ "Twitter Username" = "Nume utilizator Twitter"; +/* No comment provided by engineer. */ +"Two" = "Două"; + /* Type menu item in share extension. */ "Type" = "Tastează"; @@ -7786,7 +7849,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Unable to play video" = "Nu pot rula videoul"; /* No comment provided by engineer. */ -"Unable to read the WordPress site at that URL. Tap 'Need Help?' to view the FAQ." = "Nu pot găsi un site WordPress la acel URL. Atinge „Ai nevoi de ajutor?” pentru a vedea Întrebări frecvente."; +"Unable to read the WordPress site at that URL. Tap 'Need more help?' to view the FAQ." = "Nu pot să găsesc site-ul WordPress la acel URL. Atinge „Ai nevoi de mai mult ajutor?” pentru a vedea Întrebări frecvente."; /* Title for the Jetpack Restore Failed message. */ "Unable to restore your site" = "Nu pot să restaurez site-ul"; @@ -7869,6 +7932,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Underline" = "Subliniere"; /* Button in the notification presented in Reader when a post removed from saved for later + Button title. Reverts a comment moderation action. Button title. Reverts the previous notification operation Revert an operation The title of an 'undo' button. Tapping the button moves a trashed page out of the trash folder. @@ -8527,9 +8591,13 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Blog Writing Settings: Weeks starts on */ "Week starts on" = "Săptămâna începe"; -/* Setting: indicates if the site reports its Weekly Roundup */ +/* Setting: indicates if the site reports its Weekly Roundup + Title of Weekly Roundup push notification */ "Weekly Roundup" = "Rezumat săptămânal"; +/* Title of Weekly Roundup push notification. %@ is a placeholder and will be replaced with the title of one of the user's websites. */ +"Weekly Roundup: %@" = "Rezumat săptămânal: %@"; + /* Title of Weeks stats filter. */ "Weeks" = "Săptămâni"; @@ -8833,12 +8901,12 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* A text for subtitle label on Login epilogue screen */ "You can switch sites at any time." = "Poți comuta între site-uri în orice moment."; +/* Prompt shown on the Blogging Reminders Settings screen. */ +"You can update this any time" = "Poți actualiza oricând"; + /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "Poți actualiza oricând mergând la Site-ul meu > Setări site"; -/* Prompt shown on the Blogging Reminders Settings screen. */ -"You can update this anytime" = "Poți actualiza oricând"; - /* No comment provided by engineer. */ "You cannot use that email address to signup. We are having problems with them blocking some of our email. Please use another email provider." = "Nu poți folosi acea adresă de email pentru înregistrare. Avem probleme cu ele blocându-ne unele din emailurile noastre. Te rog folosește un alt furnizor de email."; @@ -9062,6 +9130,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* The default Jetpack view message */ "Your website credentials will not be stored and are used only for the purpose of installing Jetpack." = "Datele de conectare ale site-ului tău web nu vor fi stocate și sunt folosite numai în scopul de a instala Jetpack."; +/* Prompt displayed as part of the stats Weekly Roundup push notification. */ +"Your weekly roundup is ready, tap here to see the details!" = "Rezumat tău săptămânal este pregătit, atinge aici pentru a-l vedea!"; + /* Describes the expected behavior when the user disables in-app notifications in Reader Comments. */ "You’re following this conversation. You will receive an email and a notification whenever a new comment is made." = "Urmărești această conversație. Vei primi un email și o notificare ori de câte ori apare un nou comentariu."; diff --git a/WordPress/Resources/ru.lproj/Localizable.strings b/WordPress/Resources/ru.lproj/Localizable.strings index 2ee907658eb4..61adc99a204a 100644 --- a/WordPress/Resources/ru.lproj/Localizable.strings +++ b/WordPress/Resources/ru.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2022-01-10 15:07:42+0000 */ +/* Translation-Revision-Date: 2022-01-25 12:22:54+0000 */ /* Plural-Forms: nplurals=3; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : ((n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14)) ? 1 : 2); */ /* Generator: GlotPress/3.0.0-alpha.2 */ /* Language: ru */ @@ -468,7 +468,8 @@ translators: Block name. %s: The localized block name */ /* Label for the Activity Type filter button when there are more than 1 activity type selected */ "Activity Type (%1$d)" = "Тип активности (%1$d)"; -/* Remove asset from media picker list */ +/* Accessibility label for add button to add items to the user's media library + Remove asset from media picker list */ "Add" = "Добавить"; /* Action for Media Picker to indicate selection of media. The argument in the string represents the number of elements (as numeric digits) selected */ @@ -564,6 +565,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Add menu item to children" = "Добавить элемент меню к дочерним объектам"; +/* Accessibility hint for add button to add items to the user's media library */ +"Add new media" = "Добавить медиафайл"; + /* Screen reader text for Menus button that adds a new menu to a site. */ "Add new menu" = "Добавить новое меню"; @@ -704,6 +708,12 @@ translators: Block name. %s: The localized block name */ /* Title of a row displayed on the debug screen used to indicate whether crash logs should be forced to send, even if they otherwise wouldn't */ "Always Send Crash Logs" = "Всегда отсылать отчеты о падениях"; +/* A failure reason for when an error HTTP status code was returned from the site, with the specific error code. */ +"An HTTP error code %i was returned." = "Получен %i HTTP код ответа."; + +/* A failure reason for when an error HTTP status code was returned from the site. */ +"An HTTP error code was returned." = "Получен статус ошибки HTTP."; + /* Error message when loading failed because there's no connection */ "An active internet connection is required" = "Требуется активное интернет подключение"; @@ -756,6 +766,9 @@ translators: Block name. %s: The localized block name */ /* Text displayed when a stat section failed to load. */ "An error occurred." = "Произошла ошибка."; +/* A failure reason for when the error that occured wasn't able to be determined. */ +"An unknown error occurred." = "Произошла неизвестная ошибка."; + /* Error message shown when a media upload fails for unknown reason and the user should try again. */ "An unknown error occurred. Please try again." = "Произошла неизвестная ошибка. Повторите попытку."; @@ -817,18 +830,9 @@ translators: Block name. %s: The localized block name */ /* Message prompting the user to confirm that they want to disconnect Jetpack from the site. */ "Are you sure you want to disconnect Jetpack from the site?" = "Вы уверены, что хотите отключить Jetpack от этого сайта?"; -/* Message asking for confirmation before marking a comment as spam */ -"Are you sure you want to mark this comment as Spam?" = "Пометить этот комментарий как спам?"; - -/* Message asking for confirmation before marking a comment as trash */ -"Are you sure you want to mark this comment as Trash?" = "Вы уверены, что хотите переместить комментарий в корзину?"; - /* Message prompting the user to confirm that they want to permanently delete a group of media items. */ "Are you sure you want to permanently delete these items?" = "Вы уверены, что хотите безвозвратно удалить выбранное?"; -/* Message asking for confirmation on comment deletion */ -"Are you sure you want to permanently delete this comment?" = "Вы уверены, что хотите удалить этот комментарий навсегда?"; - /* Message prompting the user to confirm that they want to permanently delete a media item. Should match Calypso. */ "Are you sure you want to permanently delete this item?" = "Вы хотите навсегда удалить этот элемент?"; @@ -1292,6 +1296,9 @@ translators: Block name. %s: The localized block name */ Main title */ "Change Password" = "Изменить пароль"; +/* Title of button that takes user to the system Settings section for the app */ +"Change Settings" = "Изменить настройки"; + /* Title of an alert prompting the user that they are about to change the blog they are posting to. */ "Change Site" = "Сменить сайт"; @@ -1587,6 +1594,9 @@ translators: Block name. %s: The localized block name */ My First Post */ "Comment on" = "Комментарий на"; +/* Message displayed when approving a comment succeeds. */ +"Comment set to approved." = "Комментарий одобрен."; + /* Message displayed when pending a comment succeeds. */ "Comment set to pending." = "Статус комментария установлен как ожидающий одобрения."; @@ -1677,8 +1687,7 @@ translators: Block name. %s: The localized block name */ /* Section title for the configure table section in the blog details screen */ "Configure" = "Настроить"; -/* Confirm - Verb. Title for Jetpack Restore confirm button. */ +/* Verb. Title for Jetpack Restore confirm button. */ "Confirm" = "Подтвердить"; /* Close Account alert title */ @@ -2117,7 +2126,8 @@ translators: Block name. %s: The localized block name */ /* Title for the app appearance setting for dark mode */ "Dark" = "Тёмное оформление"; -/* Action title. Noun. Opens the user's WordPress.com dashboard in an external browser. */ +/* Action title. Noun. Opens the user's WordPress.com dashboard in an external browser. + Title for dashboard view on the My Site screen */ "Dashboard" = "Консоль"; /* Title for a threat that includes the number of database rows affected */ @@ -2174,7 +2184,6 @@ translators: Block name. %s: The localized block name */ "Defaults for New Posts" = "Параметры по умолчанию для новых записей"; /* Delete - Delete button title Delete button title for the warning shown to the user when he refuses to re-login when the authToken is missing. Title for button that permanently deletes a media item (photo / video) Title for button that permanently deletes one or more media items (photos / videos) @@ -2533,7 +2542,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Each block has its own settings. To find them, tap on a block. Its settings will appear on the toolbar at the bottom of the screen." = "У каждого блока свои настройки. Чтобы найти их, нажмите на блок. Его настройки появятся на панели инструментов внизу экрана."; -/* Edit the post. +/* Accessibility label for edit button to enable multi selection mode in the user's media library + Edit the post. Editing GIF alert default action button. Edits a Comment Edits the comment @@ -2740,6 +2750,9 @@ translators: Block name. %s: The localized block name */ /* Secondary message shown when there are no domains that match the user entered text. */ "Enter different words above and we'll look for an address that matches it." = "Введите другие слова выше и мы поищем адреса совпадающие с ними."; +/* Accessibility hint for edit button to enable multi selection mode in the user's media library */ +"Enter edit mode to enable multi select to delete" = "Перейдите в режим редактирования, чтобы включить множественный выбор для удаления"; + /* (placeholder) Help enter WordPress password Placeholder of a field to type a password to protect the post. */ "Enter password" = "Введите пароль"; @@ -2790,9 +2803,6 @@ translators: Block name. %s: The localized block name */ /* There was an error activating a plugin, placeholder is the plugin name */ "Error activating %@." = "Ошибка активации %@."; -/* Message shown when approving a Comment fails. */ -"Error approving comment" = "Ошибка при одобрении комментария"; - /* Message displayed when approving a comment fails. */ "Error approving comment." = "Ошибка при одобрении комментария."; @@ -2802,9 +2812,6 @@ translators: Block name. %s: The localized block name */ /* There was an error deactivating a plugin, placeholder is the plugin name */ "Error deactivating %@." = "Ошибка деактивации %@."; -/* Message shown when deleting a Comment fails. */ -"Error deleting comment" = "Ошибка при удалении комментария"; - /* Message displayed when deleting a comment fails. */ "Error deleting comment." = "Ошибка при удалении комментария."; @@ -2832,9 +2839,6 @@ translators: Block name. %s: The localized block name */ /* Messaged displayed when fetching plugins failed. */ "Error loading plugins" = "Ошибка загрузки плагинов"; -/* Message shown when marking a Comment as spam fails. */ -"Error marking comment as spam" = "Ошибка отметки комментария как спам"; - /* Message displayed when spamming a comment fails. */ "Error marking comment as spam." = "Ошибка отметки комментария как спам."; @@ -2874,12 +2878,12 @@ translators: Block name. %s: The localized block name */ /* Generic message shown when there was an error trying to re-send email verification. */ "Error sending verification email. Check your connection and try again." = "При отправке письма для подтверждения произошла ошибка. Проверьте подключение и повторите попытку."; +/* Message displayed when approving a comment fails. */ +"Error setting comment to approved." = "Ошибка одобрения комментария."; + /* Message displayed when pending a comment fails. */ "Error setting comment to pending." = "Ошибка установки статуса комментария как ожидающего одобрения."; -/* Message shown when unapproving a Comment fails. */ -"Error unapproving comment" = "Ошибка отклонения комментария"; - /* There was an error updating a plugin, placeholder is the plugin name */ "Error updating %@." = "Ошибка обновления %@."; @@ -3199,6 +3203,9 @@ translators: Block name. %s: The localized block name */ /* Next web page */ "Forward" = "Направить"; +/* No comment provided by engineer. */ +"Four" = "Четыре"; + /* Browse free themes selection title */ "Free" = "Бесплатно"; @@ -3235,6 +3242,9 @@ translators: Block name. %s: The localized block name */ /* translators: accessibility text. %s: gallery caption. */ "Gallery caption. %s" = "Подпись галереи. %s"; +/* No comment provided by engineer. */ +"Gallery style" = "Стиль галереи"; + /* An example tag used in the login prologue screens. */ "Gardening" = "Садоводство"; @@ -3853,6 +3863,9 @@ translators: Block name. %s: The localized block name */ User's Last Name */ "Last Name" = "Фамилия"; +/* Content of a weekly roundup push notification containing stats about the user's site. The % markers are placeholders and will be replaced by the appropriate number of views, comments, and likes. The numbers indicate the order, so they can be rearranged if necessary – 1 is views, 2 is comments, 3 is likes. */ +"Last week you had %1$d views, %2$d comments and %3$d likes." = "За последнюю неделю сайт просмотрели %1$d раз, оставили %2$d комментариев и %3$d отметок нравится."; + /* Insights latest post summary header */ "Latest Post Summary" = "Сводка по последней записи"; @@ -4442,6 +4455,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Navigates to customize the gradient" = "Переход к настройкам градиента"; +/* No comment provided by engineer. */ +"Navigates to layout selection screen" = "Навигация к экрану выбора макета"; + /* translators: %s: Select control button label e.g. Small translators: %s: Select control button label e.g. \"Button width\" */ "Navigates to select %s" = "Навигация для выделения %s"; @@ -4513,6 +4529,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Table view title for the quick start section. */ "Next Steps" = "Следующие шаги"; +/* Accessibility label for the button which shows the previous month in the monthly calendar view */ +"Next month" = "Следующий месяц"; + /* Accessibility label for the next notification button */ "Next notification" = "Следующее уведомление"; @@ -4611,6 +4630,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ Text shown when there is no data to display in the stats list view. */ "No data yet" = "Пока нет данных"; +/* Accessibility label for no currently selected range. */ +"No date range selected" = "Диапазон данных не выбран"; + /* Title for the view when there aren't any fixed threats to display */ "No fixed threats" = "Устранённых угроз нет"; @@ -4886,12 +4908,18 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* A subtitle with more detailed info for the user when no WordPress.com sites could be found. */ "Once you create a WordPress.com site, you can reblog content that you like to your own site." = "После создания сайта на WordPress.com вы сможете сделать перепубликацию понравившегося содержимого на своем сайте."; +/* No comment provided by engineer. */ +"One" = "Один"; + /* Subtitle displayed when the user has removed all Insights from display. */ "Only see the most relevant stats. Add insights to fit your needs." = "Смотрите только интересующую вас статистику. Добавьте тенденции, которые вам нужны."; /* No comment provided by engineer. */ "Only show excerpt" = "Показывать только отрывок"; +/* Message telling the user that they've only enabled limited photo library permissions for the app. */ +"Only the selected photos you've given access to are available." = "Доступны только выбранные фотографии, к которым вы предоставили доступ."; + /* An informal exclaimation that means `something went wrong`. Title for the view when there's an error loading Activity Log Title for the view when there's an error loading scan status @@ -5478,6 +5506,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Description of a Quick Start Tour */ "Preview your new site to see what your visitors will see." = "Посмотрите ваш сайт перед тем, как его увидят посетители."; +/* Accessibility label for the button which shows the previous month in the monthly calendar view */ +"Previous month" = "Предыдущий месяц"; + /* Accessibility label for the previous notification button */ "Previous notification" = "Предыдущее уведомление"; @@ -5775,7 +5806,7 @@ translators: %s: Select control button label e.g. \"Button width\" */ "Remove Site Icon" = "Удалить значок сайта"; /* No comment provided by engineer. */ -"Remove as Featured Image " = "Удалить как избранное изображение "; +"Remove as Featured Image" = "Удалить как избранное изображение"; /* No comment provided by engineer. */ "Remove block" = "Удалить блок"; @@ -6235,6 +6266,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Register Domain - Domain contact information field placeholder for Country */ "Select Country" = "Выберите страну"; +/* Title of button that allows the user to select more photos to access within the app */ +"Select More" = "Выбрать ещё"; + /* Blog Picker's Title */ "Select Site" = "Выбрать сайт"; @@ -6298,6 +6332,12 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Error message when user tries a no longer existent video media object. */ "Selected media is unavailable." = "Выбранный медиафайл недоступен."; +/* Accessibility label for summary of currently single date. %1$@ is the date */ +"Selected range: %1$@ only" = "Выбранный диапазон: только %1$@"; + +/* Accessibility label for summary of currently selected range. %1$@ is the start date, %2$@ is the end date. */ +"Selected range: %1$@ to %2$@" = "Выбранный диапазон: %1$@ - %2$@"; + /* translators: %s: Select font size option value e.g: \"Selected: Large\". translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Selected: %s" = "Выбрано: %s"; @@ -6358,7 +6398,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Set Parent" = "Назначить родителя"; /* No comment provided by engineer. */ -"Set as Featured Image " = "Установить как избранное изображение"; +"Set as Featured Image" = "Установить как избранное изображение"; /* Label for a button that sets the selected page as the site's Homepage */ "Set as Homepage" = "Установить как главную страницу"; @@ -6576,6 +6616,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Title for the Language Picker View */ "Site Language" = "Язык сайта"; +/* Title for the site menu view on the My Site screen */ +"Site Menu" = "Меню сайта"; + /* Describes a site redirect domain */ "Site Redirect" = "Перенаправление сайта"; @@ -6763,7 +6806,6 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Button title for Spam comment state. Marks comment as spam. - Spam Title of spam Comments filter. */ "Spam" = "Спам"; @@ -7106,7 +7148,8 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Description shown when a user logs in with Google but no matching WordPress.com account is found */ "The Google account \"%@\" doesn't match any account on WordPress.com" = "Учетная запись Google \"%@\" не соответствует ни одной учетной записи WordPress.com"; -/* Message of error prompt shown when a user tries to perform an action without an internet connection. */ +/* Error message shown when a media upload fails because the user isn't connected to the Internet. + Message of error prompt shown when a user tries to perform an action without an internet connection. */ "The Internet connection appears to be offline." = "Похоже, что нет связи с Интернетом."; /* Message informing the user that the site title can only be changed by an administrator user. */ @@ -7145,8 +7188,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Message shown when an image failed to load while trying to add it to the Media library. */ "The image could not be added to the Media Library." = "Невозможно добавить изображение в «Библиотеку медиафайлов»."; -/* Error message shown when a media upload fails because the user isn't connected to the internet. - Message of error prompt shown when a user tries to perform an action without an internet connection. */ +/* Message of error prompt shown when a user tries to perform an action without an internet connection. */ "The internet connection appears to be offline." = "Интернет-соединение недоступно."; /* Message shown when an asset failed to load while trying to add it to the Media library. */ @@ -7182,6 +7224,12 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Description shown in alert to confirm skipping all quick start items */ "The quick start tour will guide you through building a basic site. Are you sure you want to skip? " = "Быстрый старт поможет вам быстро создать базовый сайт. Вы точно хотите пропустить его?"; +/* A failure reason for when the request couldn't be serialized. */ +"The serialization of the request failed." = "Сериализация запроса не удалась."; + +/* A failure reason for when the response couldn't be serialized. */ +"The serialization of the response failed." = "Сериализация ответа не удалась."; + /* No comment provided by engineer. */ "The server returned an empty response. This usually means you need to increase the memory limit for your site." = "Сервером был дан пустой ответ. Обычно это означает, что необходимо повысить лимит памяти для сайта. Сервером был дан пустой ответ. Обычно это означает, что необходимо повысить лимит памяти для сайта."; @@ -7282,6 +7330,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Error message informing the user that there was a problem blocking posts from a site from their reader. */ "There was a problem blocking posts from the specified site." = "При блокировке записей на указанном веб-сайте произошла ошибка."; +/* A general error message shown to the user when there was an API communication failure. */ +"There was a problem communicating with the site." = "Возникла проблема при подключении к сайту."; + /* Message for the warning shown to the user when the app realizes there should be an auth token but there isn't one. */ "There was a problem connecting to WordPress.com. Please log in again." = "При подключении к WordPress.com произошла ошибка. Войдите заново."; @@ -7450,12 +7501,18 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Message displayed when a threat is ignored successfully. */ "Threat ignored." = "Угроза проигнорирована."; +/* No comment provided by engineer. */ +"Three" = "Три"; + /* Thumbnail image size. Should be the same as in core WP. */ "Thumbnail" = "Миниатюра"; /* Message shown if a thumbnail preview of a media item unavailable. */ "Thumbnail unavailable." = "Миниатюра недоступна."; +/* No comment provided by engineer. */ +"Tiled gallery settings" = "Настройки плиточной галереи"; + /* Blog Writing Settings: Time Format Writing Time Format Settings Title */ "Time Format" = "Формат времени"; @@ -7600,13 +7657,16 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* No comment provided by engineer. */ "Transform block…" = "Преобразовать блок..."; -/* Accessibility label for trash buttons in nav bars +/* Accessibility label for trash button to delete items from the user's media library + Accessibility label for trash buttons in nav bars Button title for Trash comment state. - Trash button title Trashes a comment Trashes the comment */ "Trash" = "В корзину"; +/* Accessibility hint for trash button to delete items from the user's media library */ +"Trash selected media" = "Удалить выбранный медиафайл в корзину"; + /* Title of the trash page confirmation alert. */ "Trash this page?" = "Удалить страницу в корзину?"; @@ -7687,6 +7747,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Title for the setting to edit the twitter username used when sharing to twitter. */ "Twitter Username" = "Имя пользователя Twitter"; +/* No comment provided by engineer. */ +"Two" = "Два"; + /* Type menu item in share extension. */ "Type" = "Тип"; @@ -7783,7 +7846,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Unable to play video" = "Невозможно вопроизвести видео"; /* No comment provided by engineer. */ -"Unable to read the WordPress site at that URL. Tap 'Need Help?' to view the FAQ." = "Не удалось найти веб-сайт WordPress по этому URL-адресу. Нажмите кнопку «Нужна помощь?», чтобы просмотреть ответы на часто задаваемые вопросы."; +"Unable to read the WordPress site at that URL. Tap 'Need more help?' to view the FAQ." = "Не удалось найти веб-сайт WordPress по этому URL-адресу. Нажмите кнопку «Нужна помощь?», чтобы просмотреть ответы на часто задаваемые вопросы."; /* Title for the Jetpack Restore Failed message. */ "Unable to restore your site" = "Не удалось восстановить сайт"; @@ -7866,6 +7929,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Underline" = "Подчеркнутый"; /* Button in the notification presented in Reader when a post removed from saved for later + Button title. Reverts a comment moderation action. Button title. Reverts the previous notification operation Revert an operation The title of an 'undo' button. Tapping the button moves a trashed page out of the trash folder. @@ -8524,9 +8588,13 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Blog Writing Settings: Weeks starts on */ "Week starts on" = "День начала недели"; -/* Setting: indicates if the site reports its Weekly Roundup */ +/* Setting: indicates if the site reports its Weekly Roundup + Title of Weekly Roundup push notification */ "Weekly Roundup" = "За неделю"; +/* Title of Weekly Roundup push notification. %@ is a placeholder and will be replaced with the title of one of the user's websites. */ +"Weekly Roundup: %@" = "За неделю: %@"; + /* Title of Weeks stats filter. */ "Weeks" = "Недели"; @@ -8830,12 +8898,12 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* A text for subtitle label on Login epilogue screen */ "You can switch sites at any time." = "Вы можете переключить сайт в любое время."; +/* Prompt shown on the Blogging Reminders Settings screen. */ +"You can update this any time" = "Вы можете обновить это в любое время"; + /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "Вы можете обновить это в любое время в Мой сайт > Настройки сайта"; -/* Prompt shown on the Blogging Reminders Settings screen. */ -"You can update this anytime" = "Вы можете обновить это в любое время"; - /* No comment provided by engineer. */ "You cannot use that email address to signup. We are having problems with them blocking some of our email. Please use another email provider." = "Этот почтовый адрес нельзя использовать для регистрации. Некоторые из наших писем блокируются данной почтовой службой. Пожалуйста, используйте другую службу."; @@ -9059,6 +9127,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* The default Jetpack view message */ "Your website credentials will not be stored and are used only for the purpose of installing Jetpack." = "Ваши данные входа на сайт не сохраняются и будут использованы только для установки Jetpack."; +/* Prompt displayed as part of the stats Weekly Roundup push notification. */ +"Your weekly roundup is ready, tap here to see the details!" = "Сводка за неделю готова, нажмите тут для того, чтобы посмотреть!"; + /* Describes the expected behavior when the user disables in-app notifications in Reader Comments. */ "You’re following this conversation. You will receive an email and a notification whenever a new comment is made." = "Вы подписаны на эту беседу. Вы получите уведомление и сообщение по Email при появлении новых комментариев."; diff --git a/WordPress/Resources/sk.lproj/Localizable.strings b/WordPress/Resources/sk.lproj/Localizable.strings index b394411cb5ec..18c1953cd37f 100644 --- a/WordPress/Resources/sk.lproj/Localizable.strings +++ b/WordPress/Resources/sk.lproj/Localizable.strings @@ -468,7 +468,8 @@ translators: Block name. %s: The localized block name */ /* Label for the Activity Type filter button when there are more than 1 activity type selected */ "Activity Type (%1$d)" = "Activity Type (%1$d)"; -/* Remove asset from media picker list */ +/* Accessibility label for add button to add items to the user's media library + Remove asset from media picker list */ "Add" = "Pridať"; /* Action for Media Picker to indicate selection of media. The argument in the string represents the number of elements (as numeric digits) selected */ @@ -564,6 +565,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Add menu item to children" = "Pridať položku menu do podkategórie"; +/* Accessibility hint for add button to add items to the user's media library */ +"Add new media" = "Add new media"; + /* Screen reader text for Menus button that adds a new menu to a site. */ "Add new menu" = "Add new menu"; @@ -704,6 +708,12 @@ translators: Block name. %s: The localized block name */ /* Title of a row displayed on the debug screen used to indicate whether crash logs should be forced to send, even if they otherwise wouldn't */ "Always Send Crash Logs" = "Always Send Crash Logs"; +/* A failure reason for when an error HTTP status code was returned from the site, with the specific error code. */ +"An HTTP error code %i was returned." = "An HTTP error code %i was returned."; + +/* A failure reason for when an error HTTP status code was returned from the site. */ +"An HTTP error code was returned." = "An HTTP error code was returned."; + /* Error message when loading failed because there's no connection */ "An active internet connection is required" = "Vyžaduje sa aktívne internetové pripojenie"; @@ -756,6 +766,9 @@ translators: Block name. %s: The localized block name */ /* Text displayed when a stat section failed to load. */ "An error occurred." = "An error occurred."; +/* A failure reason for when the error that occured wasn't able to be determined. */ +"An unknown error occurred." = "An unknown error occurred."; + /* Error message shown when a media upload fails for unknown reason and the user should try again. */ "An unknown error occurred. Please try again." = "Vyskytla sa neznáma chyba. Prosím skúste to znova."; @@ -817,18 +830,9 @@ translators: Block name. %s: The localized block name */ /* Message prompting the user to confirm that they want to disconnect Jetpack from the site. */ "Are you sure you want to disconnect Jetpack from the site?" = "Určite chcete odpojiť Jetpack z webovej stránky?"; -/* Message asking for confirmation before marking a comment as spam */ -"Are you sure you want to mark this comment as Spam?" = "Ste si istý, že chcete tento komentár označiť ako Spam?"; - -/* Message asking for confirmation before marking a comment as trash */ -"Are you sure you want to mark this comment as Trash?" = "Are you sure you want to mark this comment as Trash?"; - /* Message prompting the user to confirm that they want to permanently delete a group of media items. */ "Are you sure you want to permanently delete these items?" = "Naozaj chcete tieto položky natrvalo odstrániť?"; -/* Message asking for confirmation on comment deletion */ -"Are you sure you want to permanently delete this comment?" = "Are you sure you want to permanently delete this comment?"; - /* Message prompting the user to confirm that they want to permanently delete a media item. Should match Calypso. */ "Are you sure you want to permanently delete this item?" = "Naozaj chcete túto položku natrvalo odstrániť?"; @@ -1292,6 +1296,9 @@ translators: Block name. %s: The localized block name */ Main title */ "Change Password" = "Zmeniť heslo"; +/* Title of button that takes user to the system Settings section for the app */ +"Change Settings" = "Change Settings"; + /* Title of an alert prompting the user that they are about to change the blog they are posting to. */ "Change Site" = "Zmeniť webovú stránku"; @@ -1587,6 +1594,9 @@ translators: Block name. %s: The localized block name */ My First Post */ "Comment on" = "Comment on"; +/* Message displayed when approving a comment succeeds. */ +"Comment set to approved." = "Comment set to approved."; + /* Message displayed when pending a comment succeeds. */ "Comment set to pending." = "Comment set to pending."; @@ -1677,8 +1687,7 @@ translators: Block name. %s: The localized block name */ /* Section title for the configure table section in the blog details screen */ "Configure" = "Konfigurovať"; -/* Confirm - Verb. Title for Jetpack Restore confirm button. */ +/* Verb. Title for Jetpack Restore confirm button. */ "Confirm" = "Potvrdiť"; /* Close Account alert title */ @@ -2117,7 +2126,8 @@ translators: Block name. %s: The localized block name */ /* Title for the app appearance setting for dark mode */ "Dark" = "Dark"; -/* Action title. Noun. Opens the user's WordPress.com dashboard in an external browser. */ +/* Action title. Noun. Opens the user's WordPress.com dashboard in an external browser. + Title for dashboard view on the My Site screen */ "Dashboard" = "Nástenka"; /* Title for a threat that includes the number of database rows affected */ @@ -2174,7 +2184,6 @@ translators: Block name. %s: The localized block name */ "Defaults for New Posts" = "Základné pre nové príspevky"; /* Delete - Delete button title Delete button title for the warning shown to the user when he refuses to re-login when the authToken is missing. Title for button that permanently deletes a media item (photo / video) Title for button that permanently deletes one or more media items (photos / videos) @@ -2533,7 +2542,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Each block has its own settings. To find them, tap on a block. Its settings will appear on the toolbar at the bottom of the screen." = "Each block has its own settings. To find them, tap on a block. Its settings will appear on the toolbar at the bottom of the screen."; -/* Edit the post. +/* Accessibility label for edit button to enable multi selection mode in the user's media library + Edit the post. Editing GIF alert default action button. Edits a Comment Edits the comment @@ -2740,6 +2750,9 @@ translators: Block name. %s: The localized block name */ /* Secondary message shown when there are no domains that match the user entered text. */ "Enter different words above and we'll look for an address that matches it." = "Zadajte rôzne slová a vyhľadáme adresu, ktorá sa zhoduje."; +/* Accessibility hint for edit button to enable multi selection mode in the user's media library */ +"Enter edit mode to enable multi select to delete" = "Enter edit mode to enable multi select to delete"; + /* (placeholder) Help enter WordPress password Placeholder of a field to type a password to protect the post. */ "Enter password" = "Vložte heslo"; @@ -2790,9 +2803,6 @@ translators: Block name. %s: The localized block name */ /* There was an error activating a plugin, placeholder is the plugin name */ "Error activating %@." = "Chyba aktivuje %@."; -/* Message shown when approving a Comment fails. */ -"Error approving comment" = "Error approving comment"; - /* Message displayed when approving a comment fails. */ "Error approving comment." = "Error approving comment."; @@ -2802,9 +2812,6 @@ translators: Block name. %s: The localized block name */ /* There was an error deactivating a plugin, placeholder is the plugin name */ "Error deactivating %@." = "Chyba deaktivuje %@."; -/* Message shown when deleting a Comment fails. */ -"Error deleting comment" = "Error deleting comment"; - /* Message displayed when deleting a comment fails. */ "Error deleting comment." = "Error deleting comment."; @@ -2832,9 +2839,6 @@ translators: Block name. %s: The localized block name */ /* Messaged displayed when fetching plugins failed. */ "Error loading plugins" = "Došlo k chybe pri načítavaní pluginov."; -/* Message shown when marking a Comment as spam fails. */ -"Error marking comment as spam" = "Error marking comment as spam"; - /* Message displayed when spamming a comment fails. */ "Error marking comment as spam." = "Error marking comment as spam."; @@ -2874,12 +2878,12 @@ translators: Block name. %s: The localized block name */ /* Generic message shown when there was an error trying to re-send email verification. */ "Error sending verification email. Check your connection and try again." = "Chyba odoslala overovací e-mail. Skontrolujte svoje pripojenie a skúste ešte raz."; +/* Message displayed when approving a comment fails. */ +"Error setting comment to approved." = "Error setting comment to approved."; + /* Message displayed when pending a comment fails. */ "Error setting comment to pending." = "Error setting comment to pending."; -/* Message shown when unapproving a Comment fails. */ -"Error unapproving comment" = "Error unapproving comment"; - /* There was an error updating a plugin, placeholder is the plugin name */ "Error updating %@." = "Chyba aktualizácie %@."; @@ -3199,6 +3203,9 @@ translators: Block name. %s: The localized block name */ /* Next web page */ "Forward" = "Poslať ďalej"; +/* No comment provided by engineer. */ +"Four" = "Four"; + /* Browse free themes selection title */ "Free" = "Zadarmo"; @@ -3235,6 +3242,9 @@ translators: Block name. %s: The localized block name */ /* translators: accessibility text. %s: gallery caption. */ "Gallery caption. %s" = "Gallery caption. %s"; +/* No comment provided by engineer. */ +"Gallery style" = "Gallery style"; + /* An example tag used in the login prologue screens. */ "Gardening" = "Gardening"; @@ -3853,6 +3863,9 @@ translators: Block name. %s: The localized block name */ User's Last Name */ "Last Name" = "Priezvisko"; +/* Content of a weekly roundup push notification containing stats about the user's site. The % markers are placeholders and will be replaced by the appropriate number of views, comments, and likes. The numbers indicate the order, so they can be rearranged if necessary – 1 is views, 2 is comments, 3 is likes. */ +"Last week you had %1$d views, %2$d comments and %3$d likes." = "Last week you had %1$d views, %2$d comments and %3$d likes."; + /* Insights latest post summary header */ "Latest Post Summary" = "Zhrnutie najnovších článkov"; @@ -4442,6 +4455,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Navigates to customize the gradient" = "Navigates to customize the gradient"; +/* No comment provided by engineer. */ +"Navigates to layout selection screen" = "Navigates to layout selection screen"; + /* translators: %s: Select control button label e.g. Small translators: %s: Select control button label e.g. \"Button width\" */ "Navigates to select %s" = "Navigates to select %s"; @@ -4513,6 +4529,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Table view title for the quick start section. */ "Next Steps" = "Next Steps"; +/* Accessibility label for the button which shows the previous month in the monthly calendar view */ +"Next month" = "Next month"; + /* Accessibility label for the next notification button */ "Next notification" = "Nasledujúce upozornenie"; @@ -4611,6 +4630,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ Text shown when there is no data to display in the stats list view. */ "No data yet" = "No data yet"; +/* Accessibility label for no currently selected range. */ +"No date range selected" = "No date range selected"; + /* Title for the view when there aren't any fixed threats to display */ "No fixed threats" = "No fixed threats"; @@ -4886,12 +4908,18 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* A subtitle with more detailed info for the user when no WordPress.com sites could be found. */ "Once you create a WordPress.com site, you can reblog content that you like to your own site." = "Once you create a WordPress.com site, you can reblog content that you like to your own site."; +/* No comment provided by engineer. */ +"One" = "One"; + /* Subtitle displayed when the user has removed all Insights from display. */ "Only see the most relevant stats. Add insights to fit your needs." = "Only see the most relevant stats. Add insights to fit your needs."; /* No comment provided by engineer. */ "Only show excerpt" = "Only show excerpt"; +/* Message telling the user that they've only enabled limited photo library permissions for the app. */ +"Only the selected photos you've given access to are available." = "Only the selected photos you've given access to are available."; + /* An informal exclaimation that means `something went wrong`. Title for the view when there's an error loading Activity Log Title for the view when there's an error loading scan status @@ -5478,6 +5506,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Description of a Quick Start Tour */ "Preview your new site to see what your visitors will see." = "Prezrite si svoje webové stránky, aby ste videli to, čo uvidia vaši návštevníci."; +/* Accessibility label for the button which shows the previous month in the monthly calendar view */ +"Previous month" = "Previous month"; + /* Accessibility label for the previous notification button */ "Previous notification" = "Predchádzajúce upozornenie"; @@ -5775,7 +5806,7 @@ translators: %s: Select control button label e.g. \"Button width\" */ "Remove Site Icon" = "Odstrániť ikonu webovej stránky"; /* No comment provided by engineer. */ -"Remove as Featured Image " = "Remove as Featured Image "; +"Remove as Featured Image" = "Remove as Featured Image"; /* No comment provided by engineer. */ "Remove block" = "Remove block"; @@ -6235,6 +6266,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Register Domain - Domain contact information field placeholder for Country */ "Select Country" = "Select Country"; +/* Title of button that allows the user to select more photos to access within the app */ +"Select More" = "Select More"; + /* Blog Picker's Title */ "Select Site" = "Vybrať webovú stránku"; @@ -6298,6 +6332,12 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Error message when user tries a no longer existent video media object. */ "Selected media is unavailable." = "Vybraný súbor nie je k dispozícii."; +/* Accessibility label for summary of currently single date. %1$@ is the date */ +"Selected range: %1$@ only" = "Selected range: %1$@ only"; + +/* Accessibility label for summary of currently selected range. %1$@ is the start date, %2$@ is the end date. */ +"Selected range: %1$@ to %2$@" = "Selected range: %1$@ to %2$@"; + /* translators: %s: Select font size option value e.g: \"Selected: Large\". translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Selected: %s" = "Selected: %s"; @@ -6358,7 +6398,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Set Parent" = "Nastaviť Nadradený"; /* No comment provided by engineer. */ -"Set as Featured Image " = "Set as Featured Image "; +"Set as Featured Image" = "Set as Featured Image"; /* Label for a button that sets the selected page as the site's Homepage */ "Set as Homepage" = "Set as Homepage"; @@ -6576,6 +6616,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Title for the Language Picker View */ "Site Language" = "Jazyk webovej stránky"; +/* Title for the site menu view on the My Site screen */ +"Site Menu" = "Site Menu"; + /* Describes a site redirect domain */ "Site Redirect" = "Presmerovanie webovej stránky"; @@ -6763,7 +6806,6 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Button title for Spam comment state. Marks comment as spam. - Spam Title of spam Comments filter. */ "Spam" = "Spam"; @@ -7106,7 +7148,8 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Description shown when a user logs in with Google but no matching WordPress.com account is found */ "The Google account \"%@\" doesn't match any account on WordPress.com" = "The Google account \"%@\" doesn't match any account on WordPress.com"; -/* Message of error prompt shown when a user tries to perform an action without an internet connection. */ +/* Error message shown when a media upload fails because the user isn't connected to the Internet. + Message of error prompt shown when a user tries to perform an action without an internet connection. */ "The Internet connection appears to be offline." = "Zdá sa, že internetové pripojenie je vypnuté."; /* Message informing the user that the site title can only be changed by an administrator user. */ @@ -7145,8 +7188,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Message shown when an image failed to load while trying to add it to the Media library. */ "The image could not be added to the Media Library." = "Obrázok sa nepodarilo pridať do knižnice."; -/* Error message shown when a media upload fails because the user isn't connected to the internet. - Message of error prompt shown when a user tries to perform an action without an internet connection. */ +/* Message of error prompt shown when a user tries to perform an action without an internet connection. */ "The internet connection appears to be offline." = "Internetové pripojenie vyzerá nedostupné."; /* Message shown when an asset failed to load while trying to add it to the Media library. */ @@ -7182,6 +7224,12 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Description shown in alert to confirm skipping all quick start items */ "The quick start tour will guide you through building a basic site. Are you sure you want to skip? " = "Stručná úvodná prehliadka vás navedie vytvorením základnej webovej strany. Ste si istý, že chcete tento krok preskočiť?"; +/* A failure reason for when the request couldn't be serialized. */ +"The serialization of the request failed." = "The serialization of the request failed."; + +/* A failure reason for when the response couldn't be serialized. */ +"The serialization of the response failed." = "The serialization of the response failed."; + /* No comment provided by engineer. */ "The server returned an empty response. This usually means you need to increase the memory limit for your site." = "Server vrátil prázdnu odpoveď. Obvykle to znamená, že potrebujete zvýšiť obmedzenie pamäte pre vašu webovú stránku."; @@ -7282,6 +7330,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Error message informing the user that there was a problem blocking posts from a site from their reader. */ "There was a problem blocking posts from the specified site." = "Vyskytol sa problém s blokovaním príspevkov na tejto webovej stránke. "; +/* A general error message shown to the user when there was an API communication failure. */ +"There was a problem communicating with the site." = "There was a problem communicating with the site."; + /* Message for the warning shown to the user when the app realizes there should be an auth token but there isn't one. */ "There was a problem connecting to WordPress.com. Please log in again." = "Pri pripájaní na Wordpress.com nastala chyba. Prihláste sa znova."; @@ -7450,12 +7501,18 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Message displayed when a threat is ignored successfully. */ "Threat ignored." = "Threat ignored."; +/* No comment provided by engineer. */ +"Three" = "Three"; + /* Thumbnail image size. Should be the same as in core WP. */ "Thumbnail" = "Miniatúra"; /* Message shown if a thumbnail preview of a media item unavailable. */ "Thumbnail unavailable." = "Miniatúra nie je dostupná."; +/* No comment provided by engineer. */ +"Tiled gallery settings" = "Tiled gallery settings"; + /* Blog Writing Settings: Time Format Writing Time Format Settings Title */ "Time Format" = "Formát času"; @@ -7600,13 +7657,16 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* No comment provided by engineer. */ "Transform block…" = "Transform block…"; -/* Accessibility label for trash buttons in nav bars +/* Accessibility label for trash button to delete items from the user's media library + Accessibility label for trash buttons in nav bars Button title for Trash comment state. - Trash button title Trashes a comment Trashes the comment */ "Trash" = "Kôš"; +/* Accessibility hint for trash button to delete items from the user's media library */ +"Trash selected media" = "Trash selected media"; + /* Title of the trash page confirmation alert. */ "Trash this page?" = "Trash this page?"; @@ -7687,6 +7747,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Title for the setting to edit the twitter username used when sharing to twitter. */ "Twitter Username" = "Používateľské meno na Twitter"; +/* No comment provided by engineer. */ +"Two" = "Two"; + /* Type menu item in share extension. */ "Type" = "Type"; @@ -7783,7 +7846,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Unable to play video" = "Nepodarilo sa prehrať video"; /* No comment provided by engineer. */ -"Unable to read the WordPress site at that URL. Tap 'Need Help?' to view the FAQ." = "Nenašla sa webová stránka WordPress na tejto URL adrese. Ťuknite \"Potrebujete pomoc?\" na zobrazenie FAQ."; +"Unable to read the WordPress site at that URL. Tap 'Need more help?' to view the FAQ." = "Unable to read the WordPress site at that URL. Tap 'Need more help?' to view the FAQ."; /* Title for the Jetpack Restore Failed message. */ "Unable to restore your site" = "Unable to restore your site"; @@ -7866,6 +7929,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Underline" = "Podčiarknuť"; /* Button in the notification presented in Reader when a post removed from saved for later + Button title. Reverts a comment moderation action. Button title. Reverts the previous notification operation Revert an operation The title of an 'undo' button. Tapping the button moves a trashed page out of the trash folder. @@ -8524,9 +8588,13 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Blog Writing Settings: Weeks starts on */ "Week starts on" = "Týždeň začína v"; -/* Setting: indicates if the site reports its Weekly Roundup */ +/* Setting: indicates if the site reports its Weekly Roundup + Title of Weekly Roundup push notification */ "Weekly Roundup" = "Weekly Roundup"; +/* Title of Weekly Roundup push notification. %@ is a placeholder and will be replaced with the title of one of the user's websites. */ +"Weekly Roundup: %@" = "Weekly Roundup: %@"; + /* Title of Weeks stats filter. */ "Weeks" = "Týždne"; @@ -8830,12 +8898,12 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* A text for subtitle label on Login epilogue screen */ "You can switch sites at any time." = "You can switch sites at any time."; +/* Prompt shown on the Blogging Reminders Settings screen. */ +"You can update this any time" = "You can update this any time"; + /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "You can update this any time via My Site > Site Settings"; -/* Prompt shown on the Blogging Reminders Settings screen. */ -"You can update this anytime" = "You can update this anytime"; - /* No comment provided by engineer. */ "You cannot use that email address to signup. We are having problems with them blocking some of our email. Please use another email provider." = "Túto emailovú adresu nie je možné použiť na registráciu. Blokuje niektoré z našich emailov. Skúste použiť iného poskytovateľa emailových adries."; @@ -9059,6 +9127,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* The default Jetpack view message */ "Your website credentials will not be stored and are used only for the purpose of installing Jetpack." = "Your website credentials will not be stored and are used only for the purpose of installing Jetpack."; +/* Prompt displayed as part of the stats Weekly Roundup push notification. */ +"Your weekly roundup is ready, tap here to see the details!" = "Your weekly roundup is ready, tap here to see the details!"; + /* Describes the expected behavior when the user disables in-app notifications in Reader Comments. */ "You’re following this conversation. You will receive an email and a notification whenever a new comment is made." = "You’re following this conversation. You will receive an email and a notification whenever a new comment is made."; diff --git a/WordPress/Resources/sq.lproj/Localizable.strings b/WordPress/Resources/sq.lproj/Localizable.strings index 70fd88bc680d..87c73932c526 100644 --- a/WordPress/Resources/sq.lproj/Localizable.strings +++ b/WordPress/Resources/sq.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2022-01-18 21:05:27+0000 */ +/* Translation-Revision-Date: 2022-01-25 15:11:14+0000 */ /* Plural-Forms: nplurals=2; plural=n != 1; */ /* Generator: GlotPress/3.0.0-alpha.2 */ /* Language: sq_AL */ @@ -468,7 +468,8 @@ translators: Block name. %s: The localized block name */ /* Label for the Activity Type filter button when there are more than 1 activity type selected */ "Activity Type (%1$d)" = "Lloj Veprimtarie (%1$d)"; -/* Remove asset from media picker list */ +/* Accessibility label for add button to add items to the user's media library + Remove asset from media picker list */ "Add" = "Shtoje"; /* Action for Media Picker to indicate selection of media. The argument in the string represents the number of elements (as numeric digits) selected */ @@ -564,6 +565,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Add menu item to children" = "Shtoni element menuje te pjellat"; +/* Accessibility hint for add button to add items to the user's media library */ +"Add new media" = "Shtoni media të re"; + /* Screen reader text for Menus button that adds a new menu to a site. */ "Add new menu" = "Shtoni menu të re"; @@ -704,6 +708,12 @@ translators: Block name. %s: The localized block name */ /* Title of a row displayed on the debug screen used to indicate whether crash logs should be forced to send, even if they otherwise wouldn't */ "Always Send Crash Logs" = "Dërgo Përherë Regjistrime Vithisjesh"; +/* A failure reason for when an error HTTP status code was returned from the site, with the specific error code. */ +"An HTTP error code %i was returned." = "U kthye kod gabimi HTTP %i."; + +/* A failure reason for when an error HTTP status code was returned from the site. */ +"An HTTP error code was returned." = "U kthye kod gabimi HTTP."; + /* Error message when loading failed because there's no connection */ "An active internet connection is required" = "Lypse një lidhje internet aktive"; @@ -756,6 +766,9 @@ translators: Block name. %s: The localized block name */ /* Text displayed when a stat section failed to load. */ "An error occurred." = "Ndodhi një gabim."; +/* A failure reason for when the error that occured wasn't able to be determined. */ +"An unknown error occurred." = "Ndodhi një gabim i panjohur."; + /* Error message shown when a media upload fails for unknown reason and the user should try again. */ "An unknown error occurred. Please try again." = "Ndodhi një gabim i panjohur. Ju lutemi, riprovoni."; @@ -817,18 +830,9 @@ translators: Block name. %s: The localized block name */ /* Message prompting the user to confirm that they want to disconnect Jetpack from the site. */ "Are you sure you want to disconnect Jetpack from the site?" = "Jeni i sigurt se doni të shkëputet Jetpack-u nga sajti?"; -/* Message asking for confirmation before marking a comment as spam */ -"Are you sure you want to mark this comment as Spam?" = "Jeni i sigurt se doni t’i vihet shenjë këtij komenti si i Padëshiruar?"; - -/* Message asking for confirmation before marking a comment as trash */ -"Are you sure you want to mark this comment as Trash?" = "Jeni i sigurt se doni t’i vihet shenjë këtij komenti si Hedhurinë?"; - /* Message prompting the user to confirm that they want to permanently delete a group of media items. */ "Are you sure you want to permanently delete these items?" = "Jeni i sigurt që doni të fshihen përgjithmonë këto objekte?"; -/* Message asking for confirmation on comment deletion */ -"Are you sure you want to permanently delete this comment?" = "Jeni i sigurt se doni të fshihet përgjithmonë ky koment?"; - /* Message prompting the user to confirm that they want to permanently delete a media item. Should match Calypso. */ "Are you sure you want to permanently delete this item?" = "Jeni i sigurt që doni të fshihet përgjithmonë ky objekt?"; @@ -993,7 +997,7 @@ translators: Block name. %s: The localized block name */ Title for Jetpack Backup Update Status Failed screen Title for the Jetpack's backup list Title of section showing backup status */ -"Backup" = "Kopjeruaje"; +"Backup" = "Kopjeruajtje"; /* Title for error displayed when preparing a backup fails. */ "Backup failed" = "Kopjeruajtja dështoi"; @@ -1115,7 +1119,7 @@ translators: Block name. %s: The localized block name */ "Break comment threads into multiple pages." = "Copëzojini rrjedhat e komenteve në disa faqe."; /* No comment provided by engineer. */ -"Briefly describe the link to help screen reader user" = "Përshkruajeni shkurt lidhjen që të ndihmoni përdorues lexuesi ekrani."; +"Briefly describe the link to help screen reader user" = "Përshkruajeni shkurt lidhjen, që të ndihmoni përdorues lexuesish ekrani"; /* Description of a Quick Start Tour */ "Browse all our themes to find your perfect fit." = "Shfletoni krejt temat tuaja që të gjeni përputhjen e përsosur."; @@ -1292,6 +1296,9 @@ translators: Block name. %s: The localized block name */ Main title */ "Change Password" = "Ndryshoni Fjalëkalimin"; +/* Title of button that takes user to the system Settings section for the app */ +"Change Settings" = "Ndryshoni Rregullimet"; + /* Title of an alert prompting the user that they are about to change the blog they are posting to. */ "Change Site" = "Ndryshoni Sajt"; @@ -1587,6 +1594,9 @@ translators: Block name. %s: The localized block name */ My First Post */ "Comment on" = "Koment te"; +/* Message displayed when approving a comment succeeds. */ +"Comment set to approved." = "Komentit iu vu shenjë si i miratuar."; + /* Message displayed when pending a comment succeeds. */ "Comment set to pending." = "Komentit iu vu shenjë si në pritje të miratimit."; @@ -1677,8 +1687,7 @@ translators: Block name. %s: The localized block name */ /* Section title for the configure table section in the blog details screen */ "Configure" = "Formësojeni"; -/* Confirm - Verb. Title for Jetpack Restore confirm button. */ +/* Verb. Title for Jetpack Restore confirm button. */ "Confirm" = "Ripohojeni"; /* Close Account alert title */ @@ -2117,7 +2126,8 @@ translators: Block name. %s: The localized block name */ /* Title for the app appearance setting for dark mode */ "Dark" = "E errët"; -/* Action title. Noun. Opens the user's WordPress.com dashboard in an external browser. */ +/* Action title. Noun. Opens the user's WordPress.com dashboard in an external browser. + Title for dashboard view on the My Site screen */ "Dashboard" = "Pult"; /* Title for a threat that includes the number of database rows affected */ @@ -2174,7 +2184,6 @@ translators: Block name. %s: The localized block name */ "Defaults for New Posts" = "Parazgjedhje për Postime të Reja"; /* Delete - Delete button title Delete button title for the warning shown to the user when he refuses to re-login when the authToken is missing. Title for button that permanently deletes a media item (photo / video) Title for button that permanently deletes one or more media items (photos / videos) @@ -2399,10 +2408,10 @@ translators: Block name. %s: The localized block name */ "Double tap and hold to move this menu item up or down" = "Prekeni dy herë dhe mbajeni të prekur që të lëvizet ky element menuje lart ose poshtë"; /* No comment provided by engineer. */ -"Double tap to add a block" = "Që të shtoni një bllok, prekeni dyfish"; +"Double tap to add a block" = "Që të shtoni një bllok, prekeni dy herë"; /* No comment provided by engineer. */ -"Double tap to add a link." = "Që të shtoni një lidhje, prekeni dyfish"; +"Double tap to add a link." = "Që të shtoni një lidhje, prekeni dy herë."; /* Voiceover accessibility hint informing the user they can double tap a modal alert to dismiss it */ "Double tap to dismiss" = "Prekeni dyfish që të hidhet tej"; @@ -2414,7 +2423,7 @@ translators: Block name. %s: The localized block name */ "Double tap to edit label text" = "Që të përpunoni tekstin e etiketës, prekeni dy herë"; /* No comment provided by engineer. */ -"Double tap to edit placeholder text" = "Që të përpunoni tekstin e vendmbajtëses, prekeni dy herë "; +"Double tap to edit placeholder text" = "Që të përpunoni tekstin e vendmbajtëses, prekeni dy herë"; /* translators: accessibility text */ "Double tap to edit this value" = "Që të përpunoni këtë vlerë, prekeni dyfish"; @@ -2459,7 +2468,7 @@ translators: Block name. %s: The localized block name */ "Double tap to preview page." = "Për paraparje të faqes, prekeni dy herë."; /* No comment provided by engineer. */ -"Double tap to preview post." = "Për paraparje të postimit, prekeni dy herë"; +"Double tap to preview post." = "Për paraparje të postimit, prekeni dy herë."; /* No comment provided by engineer. */ "Double tap to redo last change" = "Që të ribëhet ndryshimi i fundit, prekeni dyfish"; @@ -2525,7 +2534,7 @@ translators: Block name. %s: The localized block name */ /* Label for page duplicate option. Tapping creates a copy of the page. Label for post duplicate option. Tapping creates a copy of the post. */ -"Duplicate" = "Përsëdytje"; +"Duplicate" = "Përsëdyte"; /* No comment provided by engineer. */ "Duplicate block" = "Përsëdyte bllokun"; @@ -2533,7 +2542,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Each block has its own settings. To find them, tap on a block. Its settings will appear on the toolbar at the bottom of the screen." = "Çdo bllok ka rregullimet e veta. Për t’i gjetur, klikoni mbi një bllok. Rregullimet e tij do të shfaqen te paneli në fund të ekranit."; -/* Edit the post. +/* Accessibility label for edit button to enable multi selection mode in the user's media library + Edit the post. Editing GIF alert default action button. Edits a Comment Edits the comment @@ -2740,6 +2750,9 @@ translators: Block name. %s: The localized block name */ /* Secondary message shown when there are no domains that match the user entered text. */ "Enter different words above and we'll look for an address that matches it." = "Jepni më sipër fjalë të ndryshme dhe do të kërkojmë për një adresë që ka të tilla."; +/* Accessibility hint for edit button to enable multi selection mode in the user's media library */ +"Enter edit mode to enable multi select to delete" = "Që të aktivizoni përzgjedhje të shumëfishtë për fshirje, kaloni nën mënyrën përpunim"; + /* (placeholder) Help enter WordPress password Placeholder of a field to type a password to protect the post. */ "Enter password" = "Jepni fjalëkalim"; @@ -2790,9 +2803,6 @@ translators: Block name. %s: The localized block name */ /* There was an error activating a plugin, placeholder is the plugin name */ "Error activating %@." = "Gabim gjatë aktivizimit të %@."; -/* Message shown when approving a Comment fails. */ -"Error approving comment" = "Gabim në miratim komenti"; - /* Message displayed when approving a comment fails. */ "Error approving comment." = "Gabim në miratim komenti."; @@ -2802,9 +2812,6 @@ translators: Block name. %s: The localized block name */ /* There was an error deactivating a plugin, placeholder is the plugin name */ "Error deactivating %@." = "Gabim gjatë çaktivizimit të %@."; -/* Message shown when deleting a Comment fails. */ -"Error deleting comment" = "Gabim në fshirje komenti"; - /* Message displayed when deleting a comment fails. */ "Error deleting comment." = "Gabim në fshirje komenti."; @@ -2832,9 +2839,6 @@ translators: Block name. %s: The localized block name */ /* Messaged displayed when fetching plugins failed. */ "Error loading plugins" = "Gabim në ngarkim shtojcash"; -/* Message shown when marking a Comment as spam fails. */ -"Error marking comment as spam" = "Gabim në vënie shenje komenti si i padëshiruar"; - /* Message displayed when spamming a comment fails. */ "Error marking comment as spam." = "Gabim në vënie shenje komenti si i padëshiruar."; @@ -2874,12 +2878,12 @@ translators: Block name. %s: The localized block name */ /* Generic message shown when there was an error trying to re-send email verification. */ "Error sending verification email. Check your connection and try again." = "Gabim në dërgimin e email-it të verifikimit. Kontrolloni lidhjen tuaj dhe riprovoni."; +/* Message displayed when approving a comment fails. */ +"Error setting comment to approved." = "Gabim në caktimin e komentit si i miratuar."; + /* Message displayed when pending a comment fails. */ "Error setting comment to pending." = "Gabim në caktimin e komentit si në pritje të miratimit."; -/* Message shown when unapproving a Comment fails. */ -"Error unapproving comment" = "Gabim në shmiratim komenti"; - /* There was an error updating a plugin, placeholder is the plugin name */ "Error updating %@." = "Gabim gjatë përditësimit të %@."; @@ -3199,6 +3203,9 @@ translators: Block name. %s: The localized block name */ /* Next web page */ "Forward" = "Përpara"; +/* No comment provided by engineer. */ +"Four" = "Katër"; + /* Browse free themes selection title */ "Free" = "Falas"; @@ -3209,7 +3216,7 @@ translators: Block name. %s: The localized block name */ "Free Photo Library" = "Fototekë e Lirë"; /* Label shown for domains that will be free for the first year due to the user having a premium plan with available domain credit. */ -"Free for the first year " = "Falas për vitin e parë"; +"Free for the first year " = "Falas për vitin e parë "; /* Explanatory text for clearing device media cache. */ "Free up storage space on this device by deleting temporary media files. This will not affect the media on your site." = "Lironi ca hapësirë depozitimi në këtë pajisje duke fshirë kartela të përkohshme mediash. Kjo nuk do të prekë mediat në sajtin tuaj."; @@ -3235,6 +3242,9 @@ translators: Block name. %s: The localized block name */ /* translators: accessibility text. %s: gallery caption. */ "Gallery caption. %s" = "Titull galerie. %s"; +/* No comment provided by engineer. */ +"Gallery style" = "Stil galerie"; + /* An example tag used in the login prologue screens. */ "Gardening" = "Lulishtari"; @@ -3633,7 +3643,7 @@ translators: Block name. %s: The localized block name */ "Insert Media" = "Futni Media"; /* No comment provided by engineer. */ -"Insert crosspost" = "Insert crosspost"; +"Insert crosspost" = "Futni “crosspost”"; /* Accessibility label for insert media button on formatting toolbar. */ "Insert media" = "Futni media"; @@ -3853,6 +3863,9 @@ translators: Block name. %s: The localized block name */ User's Last Name */ "Last Name" = "Mbiemri"; +/* Content of a weekly roundup push notification containing stats about the user's site. The % markers are placeholders and will be replaced by the appropriate number of views, comments, and likes. The numbers indicate the order, so they can be rearranged if necessary – 1 is views, 2 is comments, 3 is likes. */ +"Last week you had %1$d views, %2$d comments and %3$d likes." = "Javën e kaluar patët %1$d parje, %2$d komente dhe %3$d pëlqime."; + /* Insights latest post summary header */ "Latest Post Summary" = "Përmbledhje Postimesh Më të Reja"; @@ -4442,6 +4455,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Navigates to customize the gradient" = "Shkon te pjesa për përshtatje gradienti"; +/* No comment provided by engineer. */ +"Navigates to layout selection screen" = "Kalohet te skena e përzgjedhjes së skemës"; + /* translators: %s: Select control button label e.g. Small translators: %s: Select control button label e.g. \"Button width\" */ "Navigates to select %s" = "Lëvizet për të përzgjedhur %s"; @@ -4513,6 +4529,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Table view title for the quick start section. */ "Next Steps" = "Hapat Pasues"; +/* Accessibility label for the button which shows the previous month in the monthly calendar view */ +"Next month" = "Muaji pasues"; + /* Accessibility label for the next notification button */ "Next notification" = "Njoftimi pasues"; @@ -4611,6 +4630,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ Text shown when there is no data to display in the stats list view. */ "No data yet" = "Ende pa të dhëna"; +/* Accessibility label for no currently selected range. */ +"No date range selected" = "S’u përzgjodh interval datash"; + /* Title for the view when there aren't any fixed threats to display */ "No fixed threats" = "S’ka kërcënime të zgjidhur"; @@ -4886,12 +4908,18 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* A subtitle with more detailed info for the user when no WordPress.com sites could be found. */ "Once you create a WordPress.com site, you can reblog content that you like to your own site." = "Pasi të krijoni një sajt në WordPress.com, mund të riblogoni në sajtin tuaj lëndë që ju pëlqen."; +/* No comment provided by engineer. */ +"One" = "Një"; + /* Subtitle displayed when the user has removed all Insights from display. */ "Only see the most relevant stats. Add insights to fit your needs." = "Shihni vetëm statistikat më me peshë. Shtoni prirje sipas nevojave tuaja."; /* No comment provided by engineer. */ "Only show excerpt" = "Shfaq vetëm copëz"; +/* Message telling the user that they've only enabled limited photo library permissions for the app. */ +"Only the selected photos you've given access to are available." = "Mund të përdoren vetëm foto për të cilat keni lejuar përdorim."; + /* An informal exclaimation that means `something went wrong`. Title for the view when there's an error loading Activity Log Title for the view when there's an error loading scan status @@ -5012,7 +5040,7 @@ translators: %s: Select control button label e.g. \"Button width\" */ "PHONE" = "TELEFON"; /* No comment provided by engineer. */ -"Padding" = "Padding"; +"Padding" = "Zbutje"; /* Menu item label for linking a page. Noun. Type of content being selected is a blog page @@ -5478,6 +5506,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Description of a Quick Start Tour */ "Preview your new site to see what your visitors will see." = "Bëni një paraparje të sajtit tuaj që të shihni ç’do të shohin vizitorët tuaj."; +/* Accessibility label for the button which shows the previous month in the monthly calendar view */ +"Previous month" = "Muaji i mëparshëm"; + /* Accessibility label for the previous notification button */ "Previous notification" = "Njoftimi i mëparshëm"; @@ -5712,7 +5743,7 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Install Plugin dialog register domain button text Register domain - Title for the Register domain button Title for the Register domain screen */ -"Register domain" = "Regjistrojeni përkatësinë"; +"Register domain" = "Regjistroni përkatësi"; /* Register Domain - Register publicly option title */ "Register publicly" = "Regjistrojeni publikisht"; @@ -5775,7 +5806,7 @@ translators: %s: Select control button label e.g. \"Button width\" */ "Remove Site Icon" = "Hiqe Ikonën e Sajtit"; /* No comment provided by engineer. */ -"Remove as Featured Image " = "Hiqe si Figurë të Zgjedhur "; +"Remove as Featured Image" = "Hiqe si Figurë të Zgjedhur"; /* No comment provided by engineer. */ "Remove block" = "Hiqe bllokun"; @@ -6235,6 +6266,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Register Domain - Domain contact information field placeholder for Country */ "Select Country" = "Përzgjidhni Vend"; +/* Title of button that allows the user to select more photos to access within the app */ +"Select More" = "Përzgjidhni Më Tepër"; + /* Blog Picker's Title */ "Select Site" = "Përzgjidhni Sajt"; @@ -6298,6 +6332,12 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Error message when user tries a no longer existent video media object. */ "Selected media is unavailable." = "Media e përzgjedhur s’gjendet."; +/* Accessibility label for summary of currently single date. %1$@ is the date */ +"Selected range: %1$@ only" = "Interval i përzgjedhur: %1$@ vetëm"; + +/* Accessibility label for summary of currently selected range. %1$@ is the start date, %2$@ is the end date. */ +"Selected range: %1$@ to %2$@" = "Interval i përzgjedhur: %1$@ deri në %2$@"; + /* translators: %s: Select font size option value e.g: \"Selected: Large\". translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Selected: %s" = "U përzgjodh: %s"; @@ -6358,7 +6398,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Set Parent" = "Caktojeni Mëmë"; /* No comment provided by engineer. */ -"Set as Featured Image " = "Vëre Si Figurë të Zgjedhur"; +"Set as Featured Image" = "Vëre si Figurë të Zgjedhur"; /* Label for a button that sets the selected page as the site's Homepage */ "Set as Homepage" = "Caktojeni si Faqen hyrëse"; @@ -6576,6 +6616,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Title for the Language Picker View */ "Site Language" = "Gjuhë Sajti"; +/* Title for the site menu view on the My Site screen */ +"Site Menu" = "Menu Sajti"; + /* Describes a site redirect domain */ "Site Redirect" = "Ridrejtim Sajti"; @@ -6763,7 +6806,6 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Button title for Spam comment state. Marks comment as spam. - Spam Title of spam Comments filter. */ "Spam" = "I padëshiruar"; @@ -7106,7 +7148,8 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Description shown when a user logs in with Google but no matching WordPress.com account is found */ "The Google account \"%@\" doesn't match any account on WordPress.com" = "Llogaria Google \"%@\" s’ka përputhje me ndonjë llogari te WordPress.com"; -/* Message of error prompt shown when a user tries to perform an action without an internet connection. */ +/* Error message shown when a media upload fails because the user isn't connected to the Internet. + Message of error prompt shown when a user tries to perform an action without an internet connection. */ "The Internet connection appears to be offline." = "Lidhja Internet duket se është jashtë linje."; /* Message informing the user that the site title can only be changed by an administrator user. */ @@ -7145,8 +7188,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Message shown when an image failed to load while trying to add it to the Media library. */ "The image could not be added to the Media Library." = "Figura s’u shtua dot te Mediateka."; -/* Error message shown when a media upload fails because the user isn't connected to the internet. - Message of error prompt shown when a user tries to perform an action without an internet connection. */ +/* Message of error prompt shown when a user tries to perform an action without an internet connection. */ "The internet connection appears to be offline." = "Lidhja internet duket se është jashtë linje."; /* Message shown when an asset failed to load while trying to add it to the Media library. */ @@ -7182,6 +7224,12 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Description shown in alert to confirm skipping all quick start items */ "The quick start tour will guide you through building a basic site. Are you sure you want to skip? " = "Turi i shpejtë do t’ju udhëheqë përmes ndërtimit të një sajti të thjeshtë. Jeni i sigurt se doni të anashkalohet? "; +/* A failure reason for when the request couldn't be serialized. */ +"The serialization of the request failed." = "Serializimi i kërkesës dështoi."; + +/* A failure reason for when the response couldn't be serialized. */ +"The serialization of the response failed." = "Serializimi i përgjigjes dështoi."; + /* No comment provided by engineer. */ "The server returned an empty response. This usually means you need to increase the memory limit for your site." = "Shërbyesi ktheu një përgjigje të zbrazët. Zakonisht kjo do të thotë që lypset të rritni kufirin e kujtesës për sajtin tuaj."; @@ -7282,6 +7330,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Error message informing the user that there was a problem blocking posts from a site from their reader. */ "There was a problem blocking posts from the specified site." = "Pati një problem me bllokimin e postimeve prej sajtit të dhënë."; +/* A general error message shown to the user when there was an API communication failure. */ +"There was a problem communicating with the site." = "Pati një problem komunikimi me sajtin."; + /* Message for the warning shown to the user when the app realizes there should be an auth token but there isn't one. */ "There was a problem connecting to WordPress.com. Please log in again." = "Pati një problem gjatë lidhjes me WordPress.com-in. Ju lutemi, ribëni hyrjen."; @@ -7450,12 +7501,18 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Message displayed when a threat is ignored successfully. */ "Threat ignored." = "Kërcënimi u shpërfill."; +/* No comment provided by engineer. */ +"Three" = "Tre"; + /* Thumbnail image size. Should be the same as in core WP. */ "Thumbnail" = "Miniaturë"; /* Message shown if a thumbnail preview of a media item unavailable. */ "Thumbnail unavailable." = "Miniaturë ende jo gati."; +/* No comment provided by engineer. */ +"Tiled gallery settings" = "Rregullime për galeri mozaik"; + /* Blog Writing Settings: Time Format Writing Time Format Settings Title */ "Time Format" = "Format Kohe"; @@ -7600,13 +7657,16 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* No comment provided by engineer. */ "Transform block…" = "Shndërro bllokun…"; -/* Accessibility label for trash buttons in nav bars +/* Accessibility label for trash button to delete items from the user's media library + Accessibility label for trash buttons in nav bars Button title for Trash comment state. - Trash button title Trashes a comment Trashes the comment */ "Trash" = "Në hedhurina"; +/* Accessibility hint for trash button to delete items from the user's media library */ +"Trash selected media" = "Shpjere te hedhurinat median e përzgjedhur"; + /* Title of the trash page confirmation alert. */ "Trash this page?" = "Të shpihet në hedhurina kjo faqe?"; @@ -7687,6 +7747,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Title for the setting to edit the twitter username used when sharing to twitter. */ "Twitter Username" = "Emër përdoruesi Twitter"; +/* No comment provided by engineer. */ +"Two" = "Dy"; + /* Type menu item in share extension. */ "Type" = "Lloj"; @@ -7783,7 +7846,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Unable to play video" = "S’arrihet të luhet videoja"; /* No comment provided by engineer. */ -"Unable to read the WordPress site at that URL. Tap 'Need Help?' to view the FAQ." = "S’arrihet të lexohet sajti WordPress tek ajo URL. Prekni 'Ju duhet Ndihmë?' që të shihni FAQ."; +"Unable to read the WordPress site at that URL. Tap 'Need more help?' to view the FAQ." = "S’arrihet të lexohet sajti WordPress tek ajo URL. Prekni “Ju duhet Ndihmë?” që të shihni PBR."; /* Title for the Jetpack Restore Failed message. */ "Unable to restore your site" = "S’arrihet të rikthehet sajti juaj"; @@ -7866,6 +7929,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Underline" = "Të nënvizuara"; /* Button in the notification presented in Reader when a post removed from saved for later + Button title. Reverts a comment moderation action. Button title. Reverts the previous notification operation Revert an operation The title of an 'undo' button. Tapping the button moves a trashed page out of the trash folder. @@ -7891,7 +7955,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Notice title when unfollowing a site succeeds. User unfollowed a site. */ -"Unfollowed site" = "U hoq ndjekja për sajtin"; +"Unfollowed site" = "U hoq ndjekje sajti"; /* Spoken hint describing action for selected following buttons. */ "Unfollows blog" = "E ndal ndjekjen e blogut"; @@ -8524,9 +8588,13 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Blog Writing Settings: Weeks starts on */ "Week starts on" = "Java nis me"; -/* Setting: indicates if the site reports its Weekly Roundup */ +/* Setting: indicates if the site reports its Weekly Roundup + Title of Weekly Roundup push notification */ "Weekly Roundup" = "Përmbledhje Javore"; +/* Title of Weekly Roundup push notification. %@ is a placeholder and will be replaced with the title of one of the user's websites. */ +"Weekly Roundup: %@" = "Përmbledhje Javore: %@"; + /* Title of Weeks stats filter. */ "Weeks" = "Javë"; @@ -8830,12 +8898,12 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* A text for subtitle label on Login epilogue screen */ "You can switch sites at any time." = "Mund të ndërroni sajte në çfarëdo kohe."; +/* Prompt shown on the Blogging Reminders Settings screen. */ +"You can update this any time" = "Këtë mund ta përditësoni në çfarëdo kohe"; + /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "Këtë mund ta përditësoni në çfarëdo kohe që nga Sajti Im > Rregullime Sajti"; -/* Prompt shown on the Blogging Reminders Settings screen. */ -"You can update this anytime" = "Këtë mund ta përditësoni në çfarëdo kohe."; - /* No comment provided by engineer. */ "You cannot use that email address to signup. We are having problems with them blocking some of our email. Please use another email provider." = "S’mund të përdorni për regjistrim atë adresë email. Kemi probleme me ta, se bllokojnë disa nga email-et tanë. Ju lutemi, përdorni një shërbims tjetër email-esh."; @@ -9059,6 +9127,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* The default Jetpack view message */ "Your website credentials will not be stored and are used only for the purpose of installing Jetpack." = "Kredencialet tuaja për në sajt nuk do të depozitohen dhe përdoren vetëm për qëllimin e instalimit të Jetpack-ut."; +/* Prompt displayed as part of the stats Weekly Roundup push notification. */ +"Your weekly roundup is ready, tap here to see the details!" = "Përmbledhja juaj javore është gati, prekni këtu që të shihni hollësitë!"; + /* Describes the expected behavior when the user disables in-app notifications in Reader Comments. */ "You’re following this conversation. You will receive an email and a notification whenever a new comment is made." = "Po e ndiqni këtë bisedë. Kurdo që bëhet një koment i ri, do të merrni një email dhe një njoftim."; @@ -9117,7 +9188,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "doesn’t it feel good to cross things off a list?" = "a s’ju kënaq t’i hiqni vizë gjërave në një listë?"; /* No comment provided by engineer. */ -"double-tap to change unit" = "Që të ndryshoni njësinë, prekeni dy herë"; +"double-tap to change unit" = "që të ndryshoni njësinë, prekeni dy herë"; /* Register Domain - Address information field Number placeholder */ "eg. 1122334455" = "p.sh., 1122334455"; @@ -9230,7 +9301,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "widget.today.title" = "Sot"; /* Title of the unconfigured view in today widget */ -"widget.today.unconfigured.view.title" = "Që të shihni statistikat për sot, bëni hyrjen te WordPress-i"; +"widget.today.unconfigured.view.title" = "Që të shihni statistikat për sot, bëni hyrjen te WordPress-i."; /* Error message to show if a widget view is unavailable */ "widget.today.view.unavailable.title" = "Parje jo e passhme"; diff --git a/WordPress/Resources/sv.lproj/Localizable.strings b/WordPress/Resources/sv.lproj/Localizable.strings index 7daac449fa6d..e96fa30c7a77 100644 --- a/WordPress/Resources/sv.lproj/Localizable.strings +++ b/WordPress/Resources/sv.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2022-01-11 08:52:26+0000 */ +/* Translation-Revision-Date: 2022-01-25 10:18:28+0000 */ /* Plural-Forms: nplurals=2; plural=n != 1; */ /* Generator: GlotPress/3.0.0-alpha.2 */ /* Language: sv_SE */ @@ -468,7 +468,8 @@ translators: Block name. %s: The localized block name */ /* Label for the Activity Type filter button when there are more than 1 activity type selected */ "Activity Type (%1$d)" = "Aktivitetstyp (%1$d)"; -/* Remove asset from media picker list */ +/* Accessibility label for add button to add items to the user's media library + Remove asset from media picker list */ "Add" = "Lägg till"; /* Action for Media Picker to indicate selection of media. The argument in the string represents the number of elements (as numeric digits) selected */ @@ -564,6 +565,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Add menu item to children" = "Lägg till menyobjekt till underordnad"; +/* Accessibility hint for add button to add items to the user's media library */ +"Add new media" = "Add new media"; + /* Screen reader text for Menus button that adds a new menu to a site. */ "Add new menu" = "Lägg till meny"; @@ -704,6 +708,12 @@ translators: Block name. %s: The localized block name */ /* Title of a row displayed on the debug screen used to indicate whether crash logs should be forced to send, even if they otherwise wouldn't */ "Always Send Crash Logs" = "Skicka alltid kraschloggar"; +/* A failure reason for when an error HTTP status code was returned from the site, with the specific error code. */ +"An HTTP error code %i was returned." = "An HTTP error code %i was returned."; + +/* A failure reason for when an error HTTP status code was returned from the site. */ +"An HTTP error code was returned." = "An HTTP error code was returned."; + /* Error message when loading failed because there's no connection */ "An active internet connection is required" = "En aktiv internetanslutning krävs"; @@ -756,6 +766,9 @@ translators: Block name. %s: The localized block name */ /* Text displayed when a stat section failed to load. */ "An error occurred." = "Ett fel uppstod."; +/* A failure reason for when the error that occured wasn't able to be determined. */ +"An unknown error occurred." = "Ett okänt fel uppstod."; + /* Error message shown when a media upload fails for unknown reason and the user should try again. */ "An unknown error occurred. Please try again." = "Ett okänt fel har inträffatt. Försök igen."; @@ -817,18 +830,9 @@ translators: Block name. %s: The localized block name */ /* Message prompting the user to confirm that they want to disconnect Jetpack from the site. */ "Are you sure you want to disconnect Jetpack from the site?" = "Är du säker på att du vill koppla bort Jetpack från webbplatsen?"; -/* Message asking for confirmation before marking a comment as spam */ -"Are you sure you want to mark this comment as Spam?" = "Vill du markera den här kommentaren som skräp?"; - -/* Message asking for confirmation before marking a comment as trash */ -"Are you sure you want to mark this comment as Trash?" = "Vill du markera denna kommentar som skräppost?"; - /* Message prompting the user to confirm that they want to permanently delete a group of media items. */ "Are you sure you want to permanently delete these items?" = "Är du säker på att du vill ta bort dessa objekt permanent?"; -/* Message asking for confirmation on comment deletion */ -"Are you sure you want to permanently delete this comment?" = "Är du säker på att du vill ta bort denna kommentar permanent?"; - /* Message prompting the user to confirm that they want to permanently delete a media item. Should match Calypso. */ "Are you sure you want to permanently delete this item?" = "Är du säker på att du vill radera detta objekt permanent?"; @@ -1292,6 +1296,9 @@ translators: Block name. %s: The localized block name */ Main title */ "Change Password" = "Ändra lösenord"; +/* Title of button that takes user to the system Settings section for the app */ +"Change Settings" = "Ändra inställningar"; + /* Title of an alert prompting the user that they are about to change the blog they are posting to. */ "Change Site" = "Ändra webbplats"; @@ -1587,6 +1594,9 @@ translators: Block name. %s: The localized block name */ My First Post */ "Comment on" = "Kommentar på"; +/* Message displayed when approving a comment succeeds. */ +"Comment set to approved." = "Comment set to approved."; + /* Message displayed when pending a comment succeeds. */ "Comment set to pending." = "Kommentaren ändrad till väntande."; @@ -1677,8 +1687,7 @@ translators: Block name. %s: The localized block name */ /* Section title for the configure table section in the blog details screen */ "Configure" = "Ställ in"; -/* Confirm - Verb. Title for Jetpack Restore confirm button. */ +/* Verb. Title for Jetpack Restore confirm button. */ "Confirm" = "Bekräfta"; /* Close Account alert title */ @@ -2117,7 +2126,8 @@ translators: Block name. %s: The localized block name */ /* Title for the app appearance setting for dark mode */ "Dark" = "Mörk"; -/* Action title. Noun. Opens the user's WordPress.com dashboard in an external browser. */ +/* Action title. Noun. Opens the user's WordPress.com dashboard in an external browser. + Title for dashboard view on the My Site screen */ "Dashboard" = "Adminpanel"; /* Title for a threat that includes the number of database rows affected */ @@ -2174,7 +2184,6 @@ translators: Block name. %s: The localized block name */ "Defaults for New Posts" = "Standard för nya inlägg"; /* Delete - Delete button title Delete button title for the warning shown to the user when he refuses to re-login when the authToken is missing. Title for button that permanently deletes a media item (photo / video) Title for button that permanently deletes one or more media items (photos / videos) @@ -2533,7 +2542,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Each block has its own settings. To find them, tap on a block. Its settings will appear on the toolbar at the bottom of the screen." = "Varje block har sina egna inställningar. För att se dem trycker du på blocket i fråga. Inställningarna visas i verktygsfältet längst ned på skärmen."; -/* Edit the post. +/* Accessibility label for edit button to enable multi selection mode in the user's media library + Edit the post. Editing GIF alert default action button. Edits a Comment Edits the comment @@ -2740,6 +2750,9 @@ translators: Block name. %s: The localized block name */ /* Secondary message shown when there are no domains that match the user entered text. */ "Enter different words above and we'll look for an address that matches it." = "Skriv in olika ord ovan så letar vi efter en adress som matchar dem."; +/* Accessibility hint for edit button to enable multi selection mode in the user's media library */ +"Enter edit mode to enable multi select to delete" = "Enter edit mode to enable multi select to delete"; + /* (placeholder) Help enter WordPress password Placeholder of a field to type a password to protect the post. */ "Enter password" = "Ditt lösenord"; @@ -2790,9 +2803,6 @@ translators: Block name. %s: The localized block name */ /* There was an error activating a plugin, placeholder is the plugin name */ "Error activating %@." = "Ett fel inträffade när %@ skulle aktiveras."; -/* Message shown when approving a Comment fails. */ -"Error approving comment" = "Det gick inte att godkänna kommentaren"; - /* Message displayed when approving a comment fails. */ "Error approving comment." = "Fel när kommentar godkändes."; @@ -2802,9 +2812,6 @@ translators: Block name. %s: The localized block name */ /* There was an error deactivating a plugin, placeholder is the plugin name */ "Error deactivating %@." = "Ett fel inträffade när %@ skulle inaktiveras."; -/* Message shown when deleting a Comment fails. */ -"Error deleting comment" = "Det gick inte att ta bort kommentaren"; - /* Message displayed when deleting a comment fails. */ "Error deleting comment." = "Fel när kommentar togs bort."; @@ -2832,9 +2839,6 @@ translators: Block name. %s: The localized block name */ /* Messaged displayed when fetching plugins failed. */ "Error loading plugins" = "Fel vid laddning av tilläggen"; -/* Message shown when marking a Comment as spam fails. */ -"Error marking comment as spam" = "Det gick inte att markera kommentaren som skräppost"; - /* Message displayed when spamming a comment fails. */ "Error marking comment as spam." = "Fel när kommentar markerades som skräppost."; @@ -2874,12 +2878,12 @@ translators: Block name. %s: The localized block name */ /* Generic message shown when there was an error trying to re-send email verification. */ "Error sending verification email. Check your connection and try again." = "Ett fel inträffade när e-postmeddelande för verifiering skulle skickas. Kontrollera anslutningen och försök igen."; +/* Message displayed when approving a comment fails. */ +"Error setting comment to approved." = "Error setting comment to approved."; + /* Message displayed when pending a comment fails. */ "Error setting comment to pending." = "Fel när kommentaren skulle anges som väntande."; -/* Message shown when unapproving a Comment fails. */ -"Error unapproving comment" = "Det gick inte att ångra godkännande av kommentaren"; - /* There was an error updating a plugin, placeholder is the plugin name */ "Error updating %@." = "Fel vid uppdatering av %@."; @@ -3199,6 +3203,9 @@ translators: Block name. %s: The localized block name */ /* Next web page */ "Forward" = "Vidarebefodra"; +/* No comment provided by engineer. */ +"Four" = "Fyra"; + /* Browse free themes selection title */ "Free" = "Gratis"; @@ -3235,6 +3242,9 @@ translators: Block name. %s: The localized block name */ /* translators: accessibility text. %s: gallery caption. */ "Gallery caption. %s" = "Bildtext för galleri. %s"; +/* No comment provided by engineer. */ +"Gallery style" = "Galleristil"; + /* An example tag used in the login prologue screens. */ "Gardening" = "Trädgårdsarbete"; @@ -3853,6 +3863,9 @@ translators: Block name. %s: The localized block name */ User's Last Name */ "Last Name" = "Efternamn"; +/* Content of a weekly roundup push notification containing stats about the user's site. The % markers are placeholders and will be replaced by the appropriate number of views, comments, and likes. The numbers indicate the order, so they can be rearranged if necessary – 1 is views, 2 is comments, 3 is likes. */ +"Last week you had %1$d views, %2$d comments and %3$d likes." = "Last week you had %1$d views, %2$d comments and %3$d likes."; + /* Insights latest post summary header */ "Latest Post Summary" = "Sammanfattning av senaste inlägg"; @@ -4442,6 +4455,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Navigates to customize the gradient" = "Går till anpassning av gradient"; +/* No comment provided by engineer. */ +"Navigates to layout selection screen" = "Navigates to layout selection screen"; + /* translators: %s: Select control button label e.g. Small translators: %s: Select control button label e.g. \"Button width\" */ "Navigates to select %s" = "Navigerar för att markera %s"; @@ -4513,6 +4529,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Table view title for the quick start section. */ "Next Steps" = "Nästa steg"; +/* Accessibility label for the button which shows the previous month in the monthly calendar view */ +"Next month" = "Nästa månad"; + /* Accessibility label for the next notification button */ "Next notification" = "Nästa notifiering"; @@ -4611,6 +4630,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ Text shown when there is no data to display in the stats list view. */ "No data yet" = "Inga uppgifter än"; +/* Accessibility label for no currently selected range. */ +"No date range selected" = "No date range selected"; + /* Title for the view when there aren't any fixed threats to display */ "No fixed threats" = "Inga åtgärdade hot"; @@ -4886,12 +4908,18 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* A subtitle with more detailed info for the user when no WordPress.com sites could be found. */ "Once you create a WordPress.com site, you can reblog content that you like to your own site." = "När du har skapat en webbplats på WordPress.com kan du reblogga innehåll du tycker om till din egen webbplats."; +/* No comment provided by engineer. */ +"One" = "One"; + /* Subtitle displayed when the user has removed all Insights from display. */ "Only see the most relevant stats. Add insights to fit your needs." = "Visa bara den statistik som är mest relevat. Lägger till insikter som passar dina behov."; /* No comment provided by engineer. */ "Only show excerpt" = "Visa endast utdrag"; +/* Message telling the user that they've only enabled limited photo library permissions for the app. */ +"Only the selected photos you've given access to are available." = "Only the selected photos you've given access to are available."; + /* An informal exclaimation that means `something went wrong`. Title for the view when there's an error loading Activity Log Title for the view when there's an error loading scan status @@ -5478,6 +5506,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Description of a Quick Start Tour */ "Preview your new site to see what your visitors will see." = "Förhandsgranska din nya webbplats för att se vad dina besökare kommer att se."; +/* Accessibility label for the button which shows the previous month in the monthly calendar view */ +"Previous month" = "Föregående månad"; + /* Accessibility label for the previous notification button */ "Previous notification" = "Föregående notifiering"; @@ -5775,7 +5806,7 @@ translators: %s: Select control button label e.g. \"Button width\" */ "Remove Site Icon" = "Avlägsna webbplatsikonen"; /* No comment provided by engineer. */ -"Remove as Featured Image " = "Ta bort som utvald bild "; +"Remove as Featured Image" = "Ta bort som utvald bild"; /* No comment provided by engineer. */ "Remove block" = "Ta bort block"; @@ -6235,6 +6266,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Register Domain - Domain contact information field placeholder for Country */ "Select Country" = "Välj land"; +/* Title of button that allows the user to select more photos to access within the app */ +"Select More" = "Välj fler"; + /* Blog Picker's Title */ "Select Site" = "Välj webbplats"; @@ -6298,6 +6332,12 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Error message when user tries a no longer existent video media object. */ "Selected media is unavailable." = "Valt medieobjekt är inte tillgängligt."; +/* Accessibility label for summary of currently single date. %1$@ is the date */ +"Selected range: %1$@ only" = "Selected range: %1$@ only"; + +/* Accessibility label for summary of currently selected range. %1$@ is the start date, %2$@ is the end date. */ +"Selected range: %1$@ to %2$@" = "Selected range: %1$@ to %2$@"; + /* translators: %s: Select font size option value e.g: \"Selected: Large\". translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Selected: %s" = "Valt: %s"; @@ -6358,7 +6398,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Set Parent" = "Ange överordnad"; /* No comment provided by engineer. */ -"Set as Featured Image " = "Ställ in som utvald bild "; +"Set as Featured Image" = "Ställ in som utvald bild"; /* Label for a button that sets the selected page as the site's Homepage */ "Set as Homepage" = "Ställ in som startsida"; @@ -6576,6 +6616,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Title for the Language Picker View */ "Site Language" = "Webbplatsens språk"; +/* Title for the site menu view on the My Site screen */ +"Site Menu" = "Site Menu"; + /* Describes a site redirect domain */ "Site Redirect" = "Omdirigera webbplats"; @@ -6763,7 +6806,6 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Button title for Spam comment state. Marks comment as spam. - Spam Title of spam Comments filter. */ "Spam" = "Skräp"; @@ -7106,7 +7148,8 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Description shown when a user logs in with Google but no matching WordPress.com account is found */ "The Google account \"%@\" doesn't match any account on WordPress.com" = "Google-kontot ”%@” matchar inte något konto på WordPress.com"; -/* Message of error prompt shown when a user tries to perform an action without an internet connection. */ +/* Error message shown when a media upload fails because the user isn't connected to the Internet. + Message of error prompt shown when a user tries to perform an action without an internet connection. */ "The Internet connection appears to be offline." = "Du verkar inte vara uppkopplad mot Internet."; /* Message informing the user that the site title can only be changed by an administrator user. */ @@ -7145,8 +7188,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Message shown when an image failed to load while trying to add it to the Media library. */ "The image could not be added to the Media Library." = "Bilden kunde inte läggas till i mediabiblioteket."; -/* Error message shown when a media upload fails because the user isn't connected to the internet. - Message of error prompt shown when a user tries to perform an action without an internet connection. */ +/* Message of error prompt shown when a user tries to perform an action without an internet connection. */ "The internet connection appears to be offline." = "Kan inte ansluta till Internet."; /* Message shown when an asset failed to load while trying to add it to the Media library. */ @@ -7182,6 +7224,12 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Description shown in alert to confirm skipping all quick start items */ "The quick start tour will guide you through building a basic site. Are you sure you want to skip? " = "Snabbstartsdemon visar dig stegen för att bygga en grundläggande webbplats. Är du säker på att du vill hoppa över detta?"; +/* A failure reason for when the request couldn't be serialized. */ +"The serialization of the request failed." = "The serialization of the request failed."; + +/* A failure reason for when the response couldn't be serialized. */ +"The serialization of the response failed." = "The serialization of the response failed."; + /* No comment provided by engineer. */ "The server returned an empty response. This usually means you need to increase the memory limit for your site." = "Servern skickade tillbaka ett tomt svar. Detta betyder vanligtvis att du behöver öka minnesgränsen för din webbplats."; @@ -7282,6 +7330,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Error message informing the user that there was a problem blocking posts from a site from their reader. */ "There was a problem blocking posts from the specified site." = "Det gick inte att blockera inlägg från angiven webbplats."; +/* A general error message shown to the user when there was an API communication failure. */ +"There was a problem communicating with the site." = "Det var ett problem att kommunicera med webbplatsen."; + /* Message for the warning shown to the user when the app realizes there should be an auth token but there isn't one. */ "There was a problem connecting to WordPress.com. Please log in again." = "Ett fel uppstod vid anslutning till WordPress.com. Var vänlig logga in igen."; @@ -7450,12 +7501,18 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Message displayed when a threat is ignored successfully. */ "Threat ignored." = "Hotet ignorerades."; +/* No comment provided by engineer. */ +"Three" = "Tre"; + /* Thumbnail image size. Should be the same as in core WP. */ "Thumbnail" = "Miniatyr"; /* Message shown if a thumbnail preview of a media item unavailable. */ "Thumbnail unavailable." = "Miniatyr ej tillgänglig."; +/* No comment provided by engineer. */ +"Tiled gallery settings" = "Tiled gallery settings"; + /* Blog Writing Settings: Time Format Writing Time Format Settings Title */ "Time Format" = "Tidsformat"; @@ -7600,13 +7657,16 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* No comment provided by engineer. */ "Transform block…" = "Omvandla block …"; -/* Accessibility label for trash buttons in nav bars +/* Accessibility label for trash button to delete items from the user's media library + Accessibility label for trash buttons in nav bars Button title for Trash comment state. - Trash button title Trashes a comment Trashes the comment */ "Trash" = "Kastas"; +/* Accessibility hint for trash button to delete items from the user's media library */ +"Trash selected media" = "Släng valda media"; + /* Title of the trash page confirmation alert. */ "Trash this page?" = "Vill du lägga denna sida i papperskorgen?"; @@ -7687,6 +7747,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Title for the setting to edit the twitter username used when sharing to twitter. */ "Twitter Username" = "Twitter-användarnamn"; +/* No comment provided by engineer. */ +"Two" = "Två"; + /* Type menu item in share extension. */ "Type" = "Typ"; @@ -7783,7 +7846,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Unable to play video" = "Det går inte att spela video"; /* No comment provided by engineer. */ -"Unable to read the WordPress site at that URL. Tap 'Need Help?' to view the FAQ." = "Kunde inte läsa WordPress-webbplatsen på denna URL. Tryck på ”Behöver du hjälp?” för att se “Vanliga frågor”."; +"Unable to read the WordPress site at that URL. Tap 'Need more help?' to view the FAQ." = "Kunde inte läsa WordPress-webbplatsen på denna URL. Tryck på ”Behöver du mer hjälp?” för att visa vanliga frågorna."; /* Title for the Jetpack Restore Failed message. */ "Unable to restore your site" = "Kan inte återställa din webbplats"; @@ -7866,6 +7929,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Underline" = "Understrykning"; /* Button in the notification presented in Reader when a post removed from saved for later + Button title. Reverts a comment moderation action. Button title. Reverts the previous notification operation Revert an operation The title of an 'undo' button. Tapping the button moves a trashed page out of the trash folder. @@ -8524,9 +8588,13 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Blog Writing Settings: Weeks starts on */ "Week starts on" = "Veckan börjar på"; -/* Setting: indicates if the site reports its Weekly Roundup */ +/* Setting: indicates if the site reports its Weekly Roundup + Title of Weekly Roundup push notification */ "Weekly Roundup" = "Veckosammanfattning"; +/* Title of Weekly Roundup push notification. %@ is a placeholder and will be replaced with the title of one of the user's websites. */ +"Weekly Roundup: %@" = "Weekly Roundup: %@"; + /* Title of Weeks stats filter. */ "Weeks" = "Veckor"; @@ -8830,12 +8898,12 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* A text for subtitle label on Login epilogue screen */ "You can switch sites at any time." = "Du kan byta webbplats när som helst."; +/* Prompt shown on the Blogging Reminders Settings screen. */ +"You can update this any time" = "Du kan uppdatera detta när som helst"; + /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "Du kan uppdatera detta när som helst via Min webbplats > Webbplatsinställningar"; -/* Prompt shown on the Blogging Reminders Settings screen. */ -"You can update this anytime" = "Du kan uppdatera detta när som helst"; - /* No comment provided by engineer. */ "You cannot use that email address to signup. We are having problems with them blocking some of our email. Please use another email provider." = "Du kan inte använda den e-postadressen för att skapa ett konto. Vi har problem med att den e-posttjänsten ibland blockerar vår e-post. Vänligen använd en annan e-posttjänst."; @@ -9059,6 +9127,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* The default Jetpack view message */ "Your website credentials will not be stored and are used only for the purpose of installing Jetpack." = "Inloggningsuppgifterna till din webbplats används enbart för att installera Jetpack och de kommer inte att sparas."; +/* Prompt displayed as part of the stats Weekly Roundup push notification. */ +"Your weekly roundup is ready, tap here to see the details!" = "Your weekly roundup is ready, tap here to see the details!"; + /* Describes the expected behavior when the user disables in-app notifications in Reader Comments. */ "You’re following this conversation. You will receive an email and a notification whenever a new comment is made." = "Du följer denna konversation. Du kommer att få ett e-postmeddelande och en avisering varje gång en ny kommentar publiceras."; diff --git a/WordPress/Resources/th.lproj/Localizable.strings b/WordPress/Resources/th.lproj/Localizable.strings index 6172e998e886..d13b88c64a6d 100644 --- a/WordPress/Resources/th.lproj/Localizable.strings +++ b/WordPress/Resources/th.lproj/Localizable.strings @@ -468,7 +468,8 @@ translators: Block name. %s: The localized block name */ /* Label for the Activity Type filter button when there are more than 1 activity type selected */ "Activity Type (%1$d)" = "Activity Type (%1$d)"; -/* Remove asset from media picker list */ +/* Accessibility label for add button to add items to the user's media library + Remove asset from media picker list */ "Add" = "เพิ่ม"; /* Action for Media Picker to indicate selection of media. The argument in the string represents the number of elements (as numeric digits) selected */ @@ -564,6 +565,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Add menu item to children" = "Add menu item to children"; +/* Accessibility hint for add button to add items to the user's media library */ +"Add new media" = "Add new media"; + /* Screen reader text for Menus button that adds a new menu to a site. */ "Add new menu" = "Add new menu"; @@ -704,6 +708,12 @@ translators: Block name. %s: The localized block name */ /* Title of a row displayed on the debug screen used to indicate whether crash logs should be forced to send, even if they otherwise wouldn't */ "Always Send Crash Logs" = "Always Send Crash Logs"; +/* A failure reason for when an error HTTP status code was returned from the site, with the specific error code. */ +"An HTTP error code %i was returned." = "An HTTP error code %i was returned."; + +/* A failure reason for when an error HTTP status code was returned from the site. */ +"An HTTP error code was returned." = "An HTTP error code was returned."; + /* Error message when loading failed because there's no connection */ "An active internet connection is required" = "An active internet connection is required"; @@ -756,6 +766,9 @@ translators: Block name. %s: The localized block name */ /* Text displayed when a stat section failed to load. */ "An error occurred." = "An error occurred."; +/* A failure reason for when the error that occured wasn't able to be determined. */ +"An unknown error occurred." = "An unknown error occurred."; + /* Error message shown when a media upload fails for unknown reason and the user should try again. */ "An unknown error occurred. Please try again." = "An unknown error occurred. Please try again."; @@ -817,18 +830,9 @@ translators: Block name. %s: The localized block name */ /* Message prompting the user to confirm that they want to disconnect Jetpack from the site. */ "Are you sure you want to disconnect Jetpack from the site?" = "Are you sure you want to disconnect Jetpack from the site?"; -/* Message asking for confirmation before marking a comment as spam */ -"Are you sure you want to mark this comment as Spam?" = "คุณแน่ใจว่าคุณต้องการบันทึกความเห็นนี้เป็นสแปมหรือไม่?"; - -/* Message asking for confirmation before marking a comment as trash */ -"Are you sure you want to mark this comment as Trash?" = "Are you sure you want to mark this comment as Trash?"; - /* Message prompting the user to confirm that they want to permanently delete a group of media items. */ "Are you sure you want to permanently delete these items?" = "Are you sure you want to permanently delete these items?"; -/* Message asking for confirmation on comment deletion */ -"Are you sure you want to permanently delete this comment?" = "Are you sure you want to permanently delete this comment?"; - /* Message prompting the user to confirm that they want to permanently delete a media item. Should match Calypso. */ "Are you sure you want to permanently delete this item?" = "Are you sure you want to permanently delete this item?"; @@ -1292,6 +1296,9 @@ translators: Block name. %s: The localized block name */ Main title */ "Change Password" = "Change Password"; +/* Title of button that takes user to the system Settings section for the app */ +"Change Settings" = "Change Settings"; + /* Title of an alert prompting the user that they are about to change the blog they are posting to. */ "Change Site" = "เปลี่ยนเว็บ"; @@ -1587,6 +1594,9 @@ translators: Block name. %s: The localized block name */ My First Post */ "Comment on" = "Comment on"; +/* Message displayed when approving a comment succeeds. */ +"Comment set to approved." = "Comment set to approved."; + /* Message displayed when pending a comment succeeds. */ "Comment set to pending." = "Comment set to pending."; @@ -1677,8 +1687,7 @@ translators: Block name. %s: The localized block name */ /* Section title for the configure table section in the blog details screen */ "Configure" = "ปรับแต่ง"; -/* Confirm - Verb. Title for Jetpack Restore confirm button. */ +/* Verb. Title for Jetpack Restore confirm button. */ "Confirm" = "ยืนยัน"; /* Close Account alert title */ @@ -2117,7 +2126,8 @@ translators: Block name. %s: The localized block name */ /* Title for the app appearance setting for dark mode */ "Dark" = "Dark"; -/* Action title. Noun. Opens the user's WordPress.com dashboard in an external browser. */ +/* Action title. Noun. Opens the user's WordPress.com dashboard in an external browser. + Title for dashboard view on the My Site screen */ "Dashboard" = "หน้าควบคุม"; /* Title for a threat that includes the number of database rows affected */ @@ -2174,7 +2184,6 @@ translators: Block name. %s: The localized block name */ "Defaults for New Posts" = "ค่าเริ่มต้นสำหรับเรื่องใหม่"; /* Delete - Delete button title Delete button title for the warning shown to the user when he refuses to re-login when the authToken is missing. Title for button that permanently deletes a media item (photo / video) Title for button that permanently deletes one or more media items (photos / videos) @@ -2533,7 +2542,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Each block has its own settings. To find them, tap on a block. Its settings will appear on the toolbar at the bottom of the screen." = "Each block has its own settings. To find them, tap on a block. Its settings will appear on the toolbar at the bottom of the screen."; -/* Edit the post. +/* Accessibility label for edit button to enable multi selection mode in the user's media library + Edit the post. Editing GIF alert default action button. Edits a Comment Edits the comment @@ -2740,6 +2750,9 @@ translators: Block name. %s: The localized block name */ /* Secondary message shown when there are no domains that match the user entered text. */ "Enter different words above and we'll look for an address that matches it." = "Enter different words above and we'll look for an address that matches it."; +/* Accessibility hint for edit button to enable multi selection mode in the user's media library */ +"Enter edit mode to enable multi select to delete" = "Enter edit mode to enable multi select to delete"; + /* (placeholder) Help enter WordPress password Placeholder of a field to type a password to protect the post. */ "Enter password" = "ใส่รหัสผ่าน"; @@ -2790,9 +2803,6 @@ translators: Block name. %s: The localized block name */ /* There was an error activating a plugin, placeholder is the plugin name */ "Error activating %@." = "Error activating %@."; -/* Message shown when approving a Comment fails. */ -"Error approving comment" = "Error approving comment"; - /* Message displayed when approving a comment fails. */ "Error approving comment." = "Error approving comment."; @@ -2802,9 +2812,6 @@ translators: Block name. %s: The localized block name */ /* There was an error deactivating a plugin, placeholder is the plugin name */ "Error deactivating %@." = "Error deactivating %@."; -/* Message shown when deleting a Comment fails. */ -"Error deleting comment" = "Error deleting comment"; - /* Message displayed when deleting a comment fails. */ "Error deleting comment." = "Error deleting comment."; @@ -2832,9 +2839,6 @@ translators: Block name. %s: The localized block name */ /* Messaged displayed when fetching plugins failed. */ "Error loading plugins" = "Error loading plugins"; -/* Message shown when marking a Comment as spam fails. */ -"Error marking comment as spam" = "Error marking comment as spam"; - /* Message displayed when spamming a comment fails. */ "Error marking comment as spam." = "Error marking comment as spam."; @@ -2874,12 +2878,12 @@ translators: Block name. %s: The localized block name */ /* Generic message shown when there was an error trying to re-send email verification. */ "Error sending verification email. Check your connection and try again." = "Error sending verification email. Check your connection and try again."; +/* Message displayed when approving a comment fails. */ +"Error setting comment to approved." = "Error setting comment to approved."; + /* Message displayed when pending a comment fails. */ "Error setting comment to pending." = "Error setting comment to pending."; -/* Message shown when unapproving a Comment fails. */ -"Error unapproving comment" = "Error unapproving comment"; - /* There was an error updating a plugin, placeholder is the plugin name */ "Error updating %@." = "Error updating %@."; @@ -3199,6 +3203,9 @@ translators: Block name. %s: The localized block name */ /* Next web page */ "Forward" = "ฟอร์เวิร์ด"; +/* No comment provided by engineer. */ +"Four" = "Four"; + /* Browse free themes selection title */ "Free" = "ฟรี"; @@ -3235,6 +3242,9 @@ translators: Block name. %s: The localized block name */ /* translators: accessibility text. %s: gallery caption. */ "Gallery caption. %s" = "Gallery caption. %s"; +/* No comment provided by engineer. */ +"Gallery style" = "Gallery style"; + /* An example tag used in the login prologue screens. */ "Gardening" = "Gardening"; @@ -3853,6 +3863,9 @@ translators: Block name. %s: The localized block name */ User's Last Name */ "Last Name" = "นามสกุล"; +/* Content of a weekly roundup push notification containing stats about the user's site. The % markers are placeholders and will be replaced by the appropriate number of views, comments, and likes. The numbers indicate the order, so they can be rearranged if necessary – 1 is views, 2 is comments, 3 is likes. */ +"Last week you had %1$d views, %2$d comments and %3$d likes." = "Last week you had %1$d views, %2$d comments and %3$d likes."; + /* Insights latest post summary header */ "Latest Post Summary" = "สรุปเรื่องล่าสุด"; @@ -4442,6 +4455,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Navigates to customize the gradient" = "Navigates to customize the gradient"; +/* No comment provided by engineer. */ +"Navigates to layout selection screen" = "Navigates to layout selection screen"; + /* translators: %s: Select control button label e.g. Small translators: %s: Select control button label e.g. \"Button width\" */ "Navigates to select %s" = "Navigates to select %s"; @@ -4513,6 +4529,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Table view title for the quick start section. */ "Next Steps" = "Next Steps"; +/* Accessibility label for the button which shows the previous month in the monthly calendar view */ +"Next month" = "Next month"; + /* Accessibility label for the next notification button */ "Next notification" = "Next notification"; @@ -4611,6 +4630,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ Text shown when there is no data to display in the stats list view. */ "No data yet" = "No data yet"; +/* Accessibility label for no currently selected range. */ +"No date range selected" = "No date range selected"; + /* Title for the view when there aren't any fixed threats to display */ "No fixed threats" = "No fixed threats"; @@ -4886,12 +4908,18 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* A subtitle with more detailed info for the user when no WordPress.com sites could be found. */ "Once you create a WordPress.com site, you can reblog content that you like to your own site." = "Once you create a WordPress.com site, you can reblog content that you like to your own site."; +/* No comment provided by engineer. */ +"One" = "One"; + /* Subtitle displayed when the user has removed all Insights from display. */ "Only see the most relevant stats. Add insights to fit your needs." = "Only see the most relevant stats. Add insights to fit your needs."; /* No comment provided by engineer. */ "Only show excerpt" = "Only show excerpt"; +/* Message telling the user that they've only enabled limited photo library permissions for the app. */ +"Only the selected photos you've given access to are available." = "Only the selected photos you've given access to are available."; + /* An informal exclaimation that means `something went wrong`. Title for the view when there's an error loading Activity Log Title for the view when there's an error loading scan status @@ -5478,6 +5506,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Description of a Quick Start Tour */ "Preview your new site to see what your visitors will see." = "Preview your new site to see what your visitors will see."; +/* Accessibility label for the button which shows the previous month in the monthly calendar view */ +"Previous month" = "Previous month"; + /* Accessibility label for the previous notification button */ "Previous notification" = "Previous notification"; @@ -5775,7 +5806,7 @@ translators: %s: Select control button label e.g. \"Button width\" */ "Remove Site Icon" = "Remove Site Icon"; /* No comment provided by engineer. */ -"Remove as Featured Image " = "Remove as Featured Image "; +"Remove as Featured Image" = "Remove as Featured Image"; /* No comment provided by engineer. */ "Remove block" = "Remove block"; @@ -6235,6 +6266,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Register Domain - Domain contact information field placeholder for Country */ "Select Country" = "Select Country"; +/* Title of button that allows the user to select more photos to access within the app */ +"Select More" = "Select More"; + /* Blog Picker's Title */ "Select Site" = "เลือกเว็บ"; @@ -6298,6 +6332,12 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Error message when user tries a no longer existent video media object. */ "Selected media is unavailable." = "Selected media is unavailable."; +/* Accessibility label for summary of currently single date. %1$@ is the date */ +"Selected range: %1$@ only" = "Selected range: %1$@ only"; + +/* Accessibility label for summary of currently selected range. %1$@ is the start date, %2$@ is the end date. */ +"Selected range: %1$@ to %2$@" = "Selected range: %1$@ to %2$@"; + /* translators: %s: Select font size option value e.g: \"Selected: Large\". translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Selected: %s" = "Selected: %s"; @@ -6358,7 +6398,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Set Parent" = "Set Parent"; /* No comment provided by engineer. */ -"Set as Featured Image " = "Set as Featured Image "; +"Set as Featured Image" = "Set as Featured Image"; /* Label for a button that sets the selected page as the site's Homepage */ "Set as Homepage" = "Set as Homepage"; @@ -6576,6 +6616,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Title for the Language Picker View */ "Site Language" = "ภาษาของเว็บ"; +/* Title for the site menu view on the My Site screen */ +"Site Menu" = "Site Menu"; + /* Describes a site redirect domain */ "Site Redirect" = "Site Redirect"; @@ -6763,7 +6806,6 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Button title for Spam comment state. Marks comment as spam. - Spam Title of spam Comments filter. */ "Spam" = "สแปม"; @@ -7106,7 +7148,8 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Description shown when a user logs in with Google but no matching WordPress.com account is found */ "The Google account \"%@\" doesn't match any account on WordPress.com" = "The Google account \"%@\" doesn't match any account on WordPress.com"; -/* Message of error prompt shown when a user tries to perform an action without an internet connection. */ +/* Error message shown when a media upload fails because the user isn't connected to the Internet. + Message of error prompt shown when a user tries to perform an action without an internet connection. */ "The Internet connection appears to be offline." = "ดูเหมือนว่าไม่มีการเชื่อมต่ออินเตอร์เนต"; /* Message informing the user that the site title can only be changed by an administrator user. */ @@ -7145,8 +7188,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Message shown when an image failed to load while trying to add it to the Media library. */ "The image could not be added to the Media Library." = "The image could not be added to the Media Library."; -/* Error message shown when a media upload fails because the user isn't connected to the internet. - Message of error prompt shown when a user tries to perform an action without an internet connection. */ +/* Message of error prompt shown when a user tries to perform an action without an internet connection. */ "The internet connection appears to be offline." = "การเชื่อมต่ออินเตอร์เนตเหมือนว่าปิดใช้งานอยู่"; /* Message shown when an asset failed to load while trying to add it to the Media library. */ @@ -7182,6 +7224,12 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Description shown in alert to confirm skipping all quick start items */ "The quick start tour will guide you through building a basic site. Are you sure you want to skip? " = "The quick start tour will guide you through building a basic site. Are you sure you want to skip? "; +/* A failure reason for when the request couldn't be serialized. */ +"The serialization of the request failed." = "The serialization of the request failed."; + +/* A failure reason for when the response couldn't be serialized. */ +"The serialization of the response failed." = "The serialization of the response failed."; + /* No comment provided by engineer. */ "The server returned an empty response. This usually means you need to increase the memory limit for your site." = "เซิร์ฟเวอร์ตอบสนองค่าว่างกลับมา นี่อาจเป็นสัญญาณว่าคุณต้องเพิ่มหน่วยความจำสำหรับเว็บของคุณ"; @@ -7282,6 +7330,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Error message informing the user that there was a problem blocking posts from a site from their reader. */ "There was a problem blocking posts from the specified site." = "มีปัญหาในการปิดกั้นเรื่องจากเว็บที่กำหนด"; +/* A general error message shown to the user when there was an API communication failure. */ +"There was a problem communicating with the site." = "There was a problem communicating with the site."; + /* Message for the warning shown to the user when the app realizes there should be an auth token but there isn't one. */ "There was a problem connecting to WordPress.com. Please log in again." = "There was a problem connecting to WordPress.com. Please log in again."; @@ -7450,12 +7501,18 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Message displayed when a threat is ignored successfully. */ "Threat ignored." = "Threat ignored."; +/* No comment provided by engineer. */ +"Three" = "Three"; + /* Thumbnail image size. Should be the same as in core WP. */ "Thumbnail" = "รูปขนาดย่อ"; /* Message shown if a thumbnail preview of a media item unavailable. */ "Thumbnail unavailable." = "Thumbnail unavailable."; +/* No comment provided by engineer. */ +"Tiled gallery settings" = "Tiled gallery settings"; + /* Blog Writing Settings: Time Format Writing Time Format Settings Title */ "Time Format" = "Time Format"; @@ -7600,13 +7657,16 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* No comment provided by engineer. */ "Transform block…" = "Transform block…"; -/* Accessibility label for trash buttons in nav bars +/* Accessibility label for trash button to delete items from the user's media library + Accessibility label for trash buttons in nav bars Button title for Trash comment state. - Trash button title Trashes a comment Trashes the comment */ "Trash" = "ถังขยะ"; +/* Accessibility hint for trash button to delete items from the user's media library */ +"Trash selected media" = "Trash selected media"; + /* Title of the trash page confirmation alert. */ "Trash this page?" = "Trash this page?"; @@ -7687,6 +7747,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Title for the setting to edit the twitter username used when sharing to twitter. */ "Twitter Username" = "Twitter Username"; +/* No comment provided by engineer. */ +"Two" = "Two"; + /* Type menu item in share extension. */ "Type" = "Type"; @@ -7783,7 +7846,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Unable to play video" = "Unable to play video"; /* No comment provided by engineer. */ -"Unable to read the WordPress site at that URL. Tap 'Need Help?' to view the FAQ." = "Unable to read the WordPress site at that URL. Tap 'Need Help?' to view the FAQ."; +"Unable to read the WordPress site at that URL. Tap 'Need more help?' to view the FAQ." = "Unable to read the WordPress site at that URL. Tap 'Need more help?' to view the FAQ."; /* Title for the Jetpack Restore Failed message. */ "Unable to restore your site" = "Unable to restore your site"; @@ -7866,6 +7929,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Underline" = "ขีดเส้นใต้"; /* Button in the notification presented in Reader when a post removed from saved for later + Button title. Reverts a comment moderation action. Button title. Reverts the previous notification operation Revert an operation The title of an 'undo' button. Tapping the button moves a trashed page out of the trash folder. @@ -8524,9 +8588,13 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Blog Writing Settings: Weeks starts on */ "Week starts on" = "Week starts on"; -/* Setting: indicates if the site reports its Weekly Roundup */ +/* Setting: indicates if the site reports its Weekly Roundup + Title of Weekly Roundup push notification */ "Weekly Roundup" = "Weekly Roundup"; +/* Title of Weekly Roundup push notification. %@ is a placeholder and will be replaced with the title of one of the user's websites. */ +"Weekly Roundup: %@" = "Weekly Roundup: %@"; + /* Title of Weeks stats filter. */ "Weeks" = "สัปดาห์"; @@ -8830,12 +8898,12 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* A text for subtitle label on Login epilogue screen */ "You can switch sites at any time." = "You can switch sites at any time."; +/* Prompt shown on the Blogging Reminders Settings screen. */ +"You can update this any time" = "You can update this any time"; + /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "You can update this any time via My Site > Site Settings"; -/* Prompt shown on the Blogging Reminders Settings screen. */ -"You can update this anytime" = "You can update this anytime"; - /* No comment provided by engineer. */ "You cannot use that email address to signup. We are having problems with them blocking some of our email. Please use another email provider." = "คุณไม่สามารถใช้ที่อยู่อีเมล์นั้นในการลงทะเบียนได้ เรามีปัญหากับระบบของพวกเขาที่ปิดกั้นอีเมล์บางส่วนของเรา โปรดใช้เมล์ของผู้ให้บริการอีเมล์อื่น"; @@ -9059,6 +9127,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* The default Jetpack view message */ "Your website credentials will not be stored and are used only for the purpose of installing Jetpack." = "Your website credentials will not be stored and are used only for the purpose of installing Jetpack."; +/* Prompt displayed as part of the stats Weekly Roundup push notification. */ +"Your weekly roundup is ready, tap here to see the details!" = "Your weekly roundup is ready, tap here to see the details!"; + /* Describes the expected behavior when the user disables in-app notifications in Reader Comments. */ "You’re following this conversation. You will receive an email and a notification whenever a new comment is made." = "You’re following this conversation. You will receive an email and a notification whenever a new comment is made."; diff --git a/WordPress/Resources/tr.lproj/Localizable.strings b/WordPress/Resources/tr.lproj/Localizable.strings index 9217d56e8d72..96cd861ae562 100644 --- a/WordPress/Resources/tr.lproj/Localizable.strings +++ b/WordPress/Resources/tr.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2022-01-21 12:18:00+0000 */ +/* Translation-Revision-Date: 2022-01-25 18:25:06+0000 */ /* Plural-Forms: nplurals=2; plural=n > 1; */ /* Generator: GlotPress/3.0.0-alpha.2 */ /* Language: tr */ @@ -468,7 +468,8 @@ translators: Block name. %s: The localized block name */ /* Label for the Activity Type filter button when there are more than 1 activity type selected */ "Activity Type (%1$d)" = "Etkinlik Türü (%1$d)"; -/* Remove asset from media picker list */ +/* Accessibility label for add button to add items to the user's media library + Remove asset from media picker list */ "Add" = "Ekle"; /* Action for Media Picker to indicate selection of media. The argument in the string represents the number of elements (as numeric digits) selected */ @@ -564,6 +565,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Add menu item to children" = "Alt öğelere menü öğesi ekle"; +/* Accessibility hint for add button to add items to the user's media library */ +"Add new media" = "Yeni ortam ekle"; + /* Screen reader text for Menus button that adds a new menu to a site. */ "Add new menu" = "Yeni menü ekle"; @@ -704,6 +708,12 @@ translators: Block name. %s: The localized block name */ /* Title of a row displayed on the debug screen used to indicate whether crash logs should be forced to send, even if they otherwise wouldn't */ "Always Send Crash Logs" = "Kilitlenme günlüklerini daima gönder"; +/* A failure reason for when an error HTTP status code was returned from the site, with the specific error code. */ +"An HTTP error code %i was returned." = "Bir HTTP hata kodu %i döndürüldü."; + +/* A failure reason for when an error HTTP status code was returned from the site. */ +"An HTTP error code was returned." = "Bir HTTP hata kodu döndürüldü."; + /* Error message when loading failed because there's no connection */ "An active internet connection is required" = "Etkin bir internet bağlantısı gerekli"; @@ -756,6 +766,9 @@ translators: Block name. %s: The localized block name */ /* Text displayed when a stat section failed to load. */ "An error occurred." = "Bir hata oluştu."; +/* A failure reason for when the error that occured wasn't able to be determined. */ +"An unknown error occurred." = "Bilinmeyen bir hata oluştu."; + /* Error message shown when a media upload fails for unknown reason and the user should try again. */ "An unknown error occurred. Please try again." = "Bilinmeyen bir hata oluştu. Lütfen tekrar deneyin."; @@ -817,18 +830,9 @@ translators: Block name. %s: The localized block name */ /* Message prompting the user to confirm that they want to disconnect Jetpack from the site. */ "Are you sure you want to disconnect Jetpack from the site?" = "Jetpack ile site bağlantısını kesmek istediğinizden emin misiniz?"; -/* Message asking for confirmation before marking a comment as spam */ -"Are you sure you want to mark this comment as Spam?" = "Bu yorumu istenmeyen olarak işaretlemek istediğinden emin misiniz?"; - -/* Message asking for confirmation before marking a comment as trash */ -"Are you sure you want to mark this comment as Trash?" = "Bu yorumu Çöp Kutusu olarak işaretlemek istediğinizden emin misiniz?"; - /* Message prompting the user to confirm that they want to permanently delete a group of media items. */ "Are you sure you want to permanently delete these items?" = "Seçili öğeleri kalıcı olarak silmek istediğinizden emin misiniz?"; -/* Message asking for confirmation on comment deletion */ -"Are you sure you want to permanently delete this comment?" = "Bu yorumu kalıcı olarak silmek istediğinizden emin misiniz?"; - /* Message prompting the user to confirm that they want to permanently delete a media item. Should match Calypso. */ "Are you sure you want to permanently delete this item?" = "Bu ögeyi kalıcı olarak silmek istediğinizden emin misiniz?"; @@ -1292,6 +1296,9 @@ translators: Block name. %s: The localized block name */ Main title */ "Change Password" = "Parola değiştir"; +/* Title of button that takes user to the system Settings section for the app */ +"Change Settings" = "Ayarları değiştir"; + /* Title of an alert prompting the user that they are about to change the blog they are posting to. */ "Change Site" = "Site değiştir"; @@ -1587,6 +1594,9 @@ translators: Block name. %s: The localized block name */ My First Post */ "Comment on" = "Şununla ilgili yorum:"; +/* Message displayed when approving a comment succeeds. */ +"Comment set to approved." = "Yorum onaylandı olarak ayarlandı."; + /* Message displayed when pending a comment succeeds. */ "Comment set to pending." = "Yorum \"beklemede\" olarak ayarlandı."; @@ -1677,8 +1687,7 @@ translators: Block name. %s: The localized block name */ /* Section title for the configure table section in the blog details screen */ "Configure" = "Yapılandırma"; -/* Confirm - Verb. Title for Jetpack Restore confirm button. */ +/* Verb. Title for Jetpack Restore confirm button. */ "Confirm" = "Onayla"; /* Close Account alert title */ @@ -2117,7 +2126,8 @@ translators: Block name. %s: The localized block name */ /* Title for the app appearance setting for dark mode */ "Dark" = "Koyu"; -/* Action title. Noun. Opens the user's WordPress.com dashboard in an external browser. */ +/* Action title. Noun. Opens the user's WordPress.com dashboard in an external browser. + Title for dashboard view on the My Site screen */ "Dashboard" = "Başlangıç"; /* Title for a threat that includes the number of database rows affected */ @@ -2174,7 +2184,6 @@ translators: Block name. %s: The localized block name */ "Defaults for New Posts" = "Yeni yazılar için varsayılanlar"; /* Delete - Delete button title Delete button title for the warning shown to the user when he refuses to re-login when the authToken is missing. Title for button that permanently deletes a media item (photo / video) Title for button that permanently deletes one or more media items (photos / videos) @@ -2533,7 +2542,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Each block has its own settings. To find them, tap on a block. Its settings will appear on the toolbar at the bottom of the screen." = "Her blokun kendi ayarları vardır. Onları bulmak için bir bloka dokunun. Ayarları, ekranın altındaki araç çubuğunda görünür."; -/* Edit the post. +/* Accessibility label for edit button to enable multi selection mode in the user's media library + Edit the post. Editing GIF alert default action button. Edits a Comment Edits the comment @@ -2740,6 +2750,9 @@ translators: Block name. %s: The localized block name */ /* Secondary message shown when there are no domains that match the user entered text. */ "Enter different words above and we'll look for an address that matches it." = "Yukarıya farklı sözcükler girin, girdiğiniz sözcüklerle eşleşen adres olup olmadığını arayalım."; +/* Accessibility hint for edit button to enable multi selection mode in the user's media library */ +"Enter edit mode to enable multi select to delete" = "Silmek için çoklu seçimi etkinleştirmek için düzenleme moduna girin"; + /* (placeholder) Help enter WordPress password Placeholder of a field to type a password to protect the post. */ "Enter password" = "Parola girin"; @@ -2790,9 +2803,6 @@ translators: Block name. %s: The localized block name */ /* There was an error activating a plugin, placeholder is the plugin name */ "Error activating %@." = "%@ etkinleştirilirken hata oluştu."; -/* Message shown when approving a Comment fails. */ -"Error approving comment" = "Yorum onaylanırken hata oluştu"; - /* Message displayed when approving a comment fails. */ "Error approving comment." = "Yorum onaylanırken hata oluştu."; @@ -2802,9 +2812,6 @@ translators: Block name. %s: The localized block name */ /* There was an error deactivating a plugin, placeholder is the plugin name */ "Error deactivating %@." = "%@ devre dışı bırakılırken hata oluştu."; -/* Message shown when deleting a Comment fails. */ -"Error deleting comment" = "Yorum silinirken hata oluştu"; - /* Message displayed when deleting a comment fails. */ "Error deleting comment." = "Yorum silinirken hata oluştu."; @@ -2832,9 +2839,6 @@ translators: Block name. %s: The localized block name */ /* Messaged displayed when fetching plugins failed. */ "Error loading plugins" = "Eklentiler yüklenirken hata oluştu"; -/* Message shown when marking a Comment as spam fails. */ -"Error marking comment as spam" = "Yorum spam olarak işaretlenirken hata oluştu"; - /* Message displayed when spamming a comment fails. */ "Error marking comment as spam." = "Yorum spam olarak işaretlenirken hata oluştu."; @@ -2874,12 +2878,12 @@ translators: Block name. %s: The localized block name */ /* Generic message shown when there was an error trying to re-send email verification. */ "Error sending verification email. Check your connection and try again." = "Doğrulama e-postası gönderilirken hata oluştu. Bağlantınızı kontrol edin ve tekrar deneyin."; +/* Message displayed when approving a comment fails. */ +"Error setting comment to approved." = "Yorum onaylanırken alınırken hata oluştu."; + /* Message displayed when pending a comment fails. */ "Error setting comment to pending." = "Yorum beklemeye alınırken hata oluştu."; -/* Message shown when unapproving a Comment fails. */ -"Error unapproving comment" = "Yorumun onayı kaldırılırken hata oluştu "; - /* There was an error updating a plugin, placeholder is the plugin name */ "Error updating %@." = "%@ güncelleme hatası."; @@ -3199,6 +3203,9 @@ translators: Block name. %s: The localized block name */ /* Next web page */ "Forward" = "Yönlendir"; +/* No comment provided by engineer. */ +"Four" = "Dört"; + /* Browse free themes selection title */ "Free" = "Ücretsiz"; @@ -3235,6 +3242,9 @@ translators: Block name. %s: The localized block name */ /* translators: accessibility text. %s: gallery caption. */ "Gallery caption. %s" = "Galeri yazısı. %s"; +/* No comment provided by engineer. */ +"Gallery style" = "Galeri biçimi"; + /* An example tag used in the login prologue screens. */ "Gardening" = "Bahçe İşçiliği"; @@ -3853,6 +3863,9 @@ translators: Block name. %s: The localized block name */ User's Last Name */ "Last Name" = "Soyad"; +/* Content of a weekly roundup push notification containing stats about the user's site. The % markers are placeholders and will be replaced by the appropriate number of views, comments, and likes. The numbers indicate the order, so they can be rearranged if necessary – 1 is views, 2 is comments, 3 is likes. */ +"Last week you had %1$d views, %2$d comments and %3$d likes." = "Geçen hafta %1$d görüntüleme, %2$d yorum ve %3$d beğeni aldınız."; + /* Insights latest post summary header */ "Latest Post Summary" = "En güncel yazı özeti"; @@ -4442,6 +4455,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Navigates to customize the gradient" = "Gradyanı özelleştirme bölümüne gider"; +/* No comment provided by engineer. */ +"Navigates to layout selection screen" = "Yerleşim seçim ekranına ilerler"; + /* translators: %s: Select control button label e.g. Small translators: %s: Select control button label e.g. \"Button width\" */ "Navigates to select %s" = "%s öğesini seçer"; @@ -4513,6 +4529,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Table view title for the quick start section. */ "Next Steps" = "Sonraki adımlar"; +/* Accessibility label for the button which shows the previous month in the monthly calendar view */ +"Next month" = "Sonraki ay"; + /* Accessibility label for the next notification button */ "Next notification" = "Sonraki bildirim"; @@ -4611,6 +4630,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ Text shown when there is no data to display in the stats list view. */ "No data yet" = "Henüz veri yok"; +/* Accessibility label for no currently selected range. */ +"No date range selected" = "Tarih aralığı seçilmedi"; + /* Title for the view when there aren't any fixed threats to display */ "No fixed threats" = "Hiçbir tehdit düzeltilmedi"; @@ -4886,12 +4908,18 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* A subtitle with more detailed info for the user when no WordPress.com sites could be found. */ "Once you create a WordPress.com site, you can reblog content that you like to your own site." = "Bir WordPress.com sitesi oluşturduktan sonra, beğendiğiniz içeriği kendi sitenize yeniden bloglayabilirsiniz."; +/* No comment provided by engineer. */ +"One" = "Bir"; + /* Subtitle displayed when the user has removed all Insights from display. */ "Only see the most relevant stats. Add insights to fit your needs." = "Sadece en alakalı istatistikleri görün. İhtiyaçlarınıza uygun yönelimler ekleyin."; /* No comment provided by engineer. */ "Only show excerpt" = "Sadece özeti göster"; +/* Message telling the user that they've only enabled limited photo library permissions for the app. */ +"Only the selected photos you've given access to are available." = "Yalnızca erişim izni verdiğiniz seçili fotoğraflar kullanılabilir."; + /* An informal exclaimation that means `something went wrong`. Title for the view when there's an error loading Activity Log Title for the view when there's an error loading scan status @@ -5478,6 +5506,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Description of a Quick Start Tour */ "Preview your new site to see what your visitors will see." = "Ziyaretçilerinizi neyin beklediğini görmek için yeni sitenizi önizleyin."; +/* Accessibility label for the button which shows the previous month in the monthly calendar view */ +"Previous month" = "Önceki ay "; + /* Accessibility label for the previous notification button */ "Previous notification" = "Önceki bildirim"; @@ -5775,7 +5806,7 @@ translators: %s: Select control button label e.g. \"Button width\" */ "Remove Site Icon" = "Site simgesini kaldır"; /* No comment provided by engineer. */ -"Remove as Featured Image " = "Öne Çıkan Görsel kategorisinden kaldır "; +"Remove as Featured Image" = "Öne çıkan görseli kaldır "; /* No comment provided by engineer. */ "Remove block" = "Bloğu kaldır"; @@ -6235,6 +6266,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Register Domain - Domain contact information field placeholder for Country */ "Select Country" = "Ülke seçin"; +/* Title of button that allows the user to select more photos to access within the app */ +"Select More" = "Daha fazla seç"; + /* Blog Picker's Title */ "Select Site" = "Site seçin"; @@ -6298,6 +6332,12 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Error message when user tries a no longer existent video media object. */ "Selected media is unavailable." = "Seçilen ortam uygun değil."; +/* Accessibility label for summary of currently single date. %1$@ is the date */ +"Selected range: %1$@ only" = "Seçilen aralık: yalnızca %1$@"; + +/* Accessibility label for summary of currently selected range. %1$@ is the start date, %2$@ is the end date. */ +"Selected range: %1$@ to %2$@" = "Seçilen aralık: %1$@ ile %2$@ arası"; + /* translators: %s: Select font size option value e.g: \"Selected: Large\". translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Selected: %s" = "Seçilen: %s"; @@ -6358,7 +6398,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Set Parent" = "Ana sayfayı belirleyin"; /* No comment provided by engineer. */ -"Set as Featured Image " = "Öne Çıkarılan Görsel olarak ayarla "; +"Set as Featured Image" = "Öne çıkan görsel olarak ayarla"; /* Label for a button that sets the selected page as the site's Homepage */ "Set as Homepage" = "Ana sayfa olarak ayarla"; @@ -6576,6 +6616,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Title for the Language Picker View */ "Site Language" = "Site dili"; +/* Title for the site menu view on the My Site screen */ +"Site Menu" = "Site menüsü"; + /* Describes a site redirect domain */ "Site Redirect" = "Site yönlendirme"; @@ -6763,7 +6806,6 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Button title for Spam comment state. Marks comment as spam. - Spam Title of spam Comments filter. */ "Spam" = "İstenmeyen"; @@ -7106,7 +7148,8 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Description shown when a user logs in with Google but no matching WordPress.com account is found */ "The Google account \"%@\" doesn't match any account on WordPress.com" = " Google hesabı \"%@\" WordPress.com'daki herhangi bir hesapla eşleşmiyor"; -/* Message of error prompt shown when a user tries to perform an action without an internet connection. */ +/* Error message shown when a media upload fails because the user isn't connected to the Internet. + Message of error prompt shown when a user tries to perform an action without an internet connection. */ "The Internet connection appears to be offline." = "Internet bağlantınız çevrimdışı görünüyor."; /* Message informing the user that the site title can only be changed by an administrator user. */ @@ -7145,8 +7188,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Message shown when an image failed to load while trying to add it to the Media library. */ "The image could not be added to the Media Library." = "Görsel ortam kütüphanesine eklenemez."; -/* Error message shown when a media upload fails because the user isn't connected to the internet. - Message of error prompt shown when a user tries to perform an action without an internet connection. */ +/* Message of error prompt shown when a user tries to perform an action without an internet connection. */ "The internet connection appears to be offline." = "Internet bağlantısı yok gözüküyor."; /* Message shown when an asset failed to load while trying to add it to the Media library. */ @@ -7182,6 +7224,12 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Description shown in alert to confirm skipping all quick start items */ "The quick start tour will guide you through building a basic site. Are you sure you want to skip? " = "Hızlı başlangıç turu temel bir site kurma adımlarıyla ilgili sizi yönlendirir. Atlamak istediğinizden emin misiniz? "; +/* A failure reason for when the request couldn't be serialized. */ +"The serialization of the request failed." = "İsteğin serileştirilmesi başarısız oldu."; + +/* A failure reason for when the response couldn't be serialized. */ +"The serialization of the response failed." = "Yanıtın serileştirilmesi başarısız oldu."; + /* No comment provided by engineer. */ "The server returned an empty response. This usually means you need to increase the memory limit for your site." = "Sunucu boş bir yanıt döndü. Bu genellikle sitenizin hafıza limitini arttırmanız gerektiği anlamına gelir."; @@ -7282,6 +7330,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Error message informing the user that there was a problem blocking posts from a site from their reader. */ "There was a problem blocking posts from the specified site." = "Belirlenen sitenin yazıları engellenirken hata oluştu."; +/* A general error message shown to the user when there was an API communication failure. */ +"There was a problem communicating with the site." = "Siteyle iletişimde bir sorun oluştu."; + /* Message for the warning shown to the user when the app realizes there should be an auth token but there isn't one. */ "There was a problem connecting to WordPress.com. Please log in again." = "WordPress.com'a bağlanırken problem oluştu. Lütfen tekrar giriş yapın."; @@ -7450,12 +7501,18 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Message displayed when a threat is ignored successfully. */ "Threat ignored." = "Tehdit yok sayıldı."; +/* No comment provided by engineer. */ +"Three" = "Üç"; + /* Thumbnail image size. Should be the same as in core WP. */ "Thumbnail" = "Küçük resim"; /* Message shown if a thumbnail preview of a media item unavailable. */ "Thumbnail unavailable." = "Küçük resim kullanılamıyor."; +/* No comment provided by engineer. */ +"Tiled gallery settings" = "Döşenmiş galeri ayarları"; + /* Blog Writing Settings: Time Format Writing Time Format Settings Title */ "Time Format" = "Zaman biçimi"; @@ -7600,13 +7657,16 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* No comment provided by engineer. */ "Transform block…" = "Bloku dönüştür…"; -/* Accessibility label for trash buttons in nav bars +/* Accessibility label for trash button to delete items from the user's media library + Accessibility label for trash buttons in nav bars Button title for Trash comment state. - Trash button title Trashes a comment Trashes the comment */ "Trash" = "Çöp kutusu"; +/* Accessibility hint for trash button to delete items from the user's media library */ +"Trash selected media" = "Seçilen ortamı çöpe at"; + /* Title of the trash page confirmation alert. */ "Trash this page?" = "Bu sayfa çöp kutusuna gönderilsin mi?"; @@ -7687,6 +7747,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Title for the setting to edit the twitter username used when sharing to twitter. */ "Twitter Username" = "Twitter kullanıcı adı"; +/* No comment provided by engineer. */ +"Two" = "İki"; + /* Type menu item in share extension. */ "Type" = "Tür"; @@ -7783,7 +7846,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Unable to play video" = "Video oynatılamıyor"; /* No comment provided by engineer. */ -"Unable to read the WordPress site at that URL. Tap 'Need Help?' to view the FAQ." = "Belirtilen adresteki WordPress sitesi okunamadı. 'Yardım lazım mı?' tuşuna tıklayarak SSS'i görüntüleyebilirsiniz."; +"Unable to read the WordPress site at that URL. Tap 'Need more help?' to view the FAQ." = "Belirtilen adresteki WordPress sitesi okunamadı. 'Yardım lazım mı?' tuşuna tıklayarak SSS'i görüntüleyebilirsiniz."; /* Title for the Jetpack Restore Failed message. */ "Unable to restore your site" = "Siteniz geri yüklenemiyor"; @@ -7866,6 +7929,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Underline" = "Altı çizili"; /* Button in the notification presented in Reader when a post removed from saved for later + Button title. Reverts a comment moderation action. Button title. Reverts the previous notification operation Revert an operation The title of an 'undo' button. Tapping the button moves a trashed page out of the trash folder. @@ -8524,9 +8588,13 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Blog Writing Settings: Weeks starts on */ "Week starts on" = "Haftanın başlangıcı"; -/* Setting: indicates if the site reports its Weekly Roundup */ +/* Setting: indicates if the site reports its Weekly Roundup + Title of Weekly Roundup push notification */ "Weekly Roundup" = "Haftalık Özet"; +/* Title of Weekly Roundup push notification. %@ is a placeholder and will be replaced with the title of one of the user's websites. */ +"Weekly Roundup: %@" = "Haftalık özet: %@"; + /* Title of Weeks stats filter. */ "Weeks" = "Haftalar"; @@ -8830,12 +8898,12 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* A text for subtitle label on Login epilogue screen */ "You can switch sites at any time." = "Siteleri istediğiniz zaman değiştirebilirsiniz."; +/* Prompt shown on the Blogging Reminders Settings screen. */ +"You can update this any time" = "Bunu istediğiniz zaman güncelleyebilirsiniz"; + /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "Bunu, Sitem > Site Ayarları'ndan istediğiniz zaman güncelleyebilirsiniz."; -/* Prompt shown on the Blogging Reminders Settings screen. */ -"You can update this anytime" = "Bunu istediğiniz zaman güncelleyebilirsiniz"; - /* No comment provided by engineer. */ "You cannot use that email address to signup. We are having problems with them blocking some of our email. Please use another email provider." = "Bu e-posta adresini kayıt olmak için kullanamazsınız. Bazı e-postalarımızın engellenmesiyle ilgili problem yaşıyoruz. Farklı bir e-posta sağlayıcısı kullanın."; @@ -9059,6 +9127,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* The default Jetpack view message */ "Your website credentials will not be stored and are used only for the purpose of installing Jetpack." = "Web sitenizin kimlik bilgileri depolanmayacak ve yalnızca Jetpack’i güvenli bir şekilde yüklemek amacıyla kullanılacaktır."; +/* Prompt displayed as part of the stats Weekly Roundup push notification. */ +"Your weekly roundup is ready, tap here to see the details!" = "Haftalık özetiniz hazır, ayrıntıları görmek için buraya dokunun!"; + /* Describes the expected behavior when the user disables in-app notifications in Reader Comments. */ "You’re following this conversation. You will receive an email and a notification whenever a new comment is made." = "Bu konuşmayı takip ediyorsunuz. Yeni bir yorum yapıldığında e-posta ve bildirim alacaksınız."; diff --git a/WordPress/Resources/zh-Hans.lproj/Localizable.strings b/WordPress/Resources/zh-Hans.lproj/Localizable.strings index 29bfd5a83bad..b45eae33c4a8 100644 --- a/WordPress/Resources/zh-Hans.lproj/Localizable.strings +++ b/WordPress/Resources/zh-Hans.lproj/Localizable.strings @@ -468,7 +468,8 @@ translators: Block name. %s: The localized block name */ /* Label for the Activity Type filter button when there are more than 1 activity type selected */ "Activity Type (%1$d)" = "活动类型 (%1$d)"; -/* Remove asset from media picker list */ +/* Accessibility label for add button to add items to the user's media library + Remove asset from media picker list */ "Add" = "添加"; /* Action for Media Picker to indicate selection of media. The argument in the string represents the number of elements (as numeric digits) selected */ @@ -564,6 +565,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Add menu item to children" = "将菜单项添加至子网页"; +/* Accessibility hint for add button to add items to the user's media library */ +"Add new media" = "Add new media"; + /* Screen reader text for Menus button that adds a new menu to a site. */ "Add new menu" = "添加新菜单"; @@ -704,6 +708,12 @@ translators: Block name. %s: The localized block name */ /* Title of a row displayed on the debug screen used to indicate whether crash logs should be forced to send, even if they otherwise wouldn't */ "Always Send Crash Logs" = "始终发送崩溃日志"; +/* A failure reason for when an error HTTP status code was returned from the site, with the specific error code. */ +"An HTTP error code %i was returned." = "An HTTP error code %i was returned."; + +/* A failure reason for when an error HTTP status code was returned from the site. */ +"An HTTP error code was returned." = "An HTTP error code was returned."; + /* Error message when loading failed because there's no connection */ "An active internet connection is required" = "必须连接互联网"; @@ -756,6 +766,9 @@ translators: Block name. %s: The localized block name */ /* Text displayed when a stat section failed to load. */ "An error occurred." = "出现错误。"; +/* A failure reason for when the error that occured wasn't able to be determined. */ +"An unknown error occurred." = "An unknown error occurred."; + /* Error message shown when a media upload fails for unknown reason and the user should try again. */ "An unknown error occurred. Please try again." = "发生了未知错误。请重试。"; @@ -817,18 +830,9 @@ translators: Block name. %s: The localized block name */ /* Message prompting the user to confirm that they want to disconnect Jetpack from the site. */ "Are you sure you want to disconnect Jetpack from the site?" = "确定要断开 Jetpack 与该站点的连接吗?"; -/* Message asking for confirmation before marking a comment as spam */ -"Are you sure you want to mark this comment as Spam?" = "是否确定要将此评论标记为垃圾评论?"; - -/* Message asking for confirmation before marking a comment as trash */ -"Are you sure you want to mark this comment as Trash?" = "您确定要将此评论标记为垃圾?"; - /* Message prompting the user to confirm that they want to permanently delete a group of media items. */ "Are you sure you want to permanently delete these items?" = "是否确定要永久删除这些项目?"; -/* Message asking for confirmation on comment deletion */ -"Are you sure you want to permanently delete this comment?" = "您确定要永久删除此评论?"; - /* Message prompting the user to confirm that they want to permanently delete a media item. Should match Calypso. */ "Are you sure you want to permanently delete this item?" = "是否确定要永久删除此项目?"; @@ -1292,6 +1296,9 @@ translators: Block name. %s: The localized block name */ Main title */ "Change Password" = "修改密码"; +/* Title of button that takes user to the system Settings section for the app */ +"Change Settings" = "Change Settings"; + /* Title of an alert prompting the user that they are about to change the blog they are posting to. */ "Change Site" = "更改站点"; @@ -1587,6 +1594,9 @@ translators: Block name. %s: The localized block name */ My First Post */ "Comment on" = "评论于"; +/* Message displayed when approving a comment succeeds. */ +"Comment set to approved." = "Comment set to approved."; + /* Message displayed when pending a comment succeeds. */ "Comment set to pending." = "已将评论设置为待处理。"; @@ -1677,8 +1687,7 @@ translators: Block name. %s: The localized block name */ /* Section title for the configure table section in the blog details screen */ "Configure" = "配置"; -/* Confirm - Verb. Title for Jetpack Restore confirm button. */ +/* Verb. Title for Jetpack Restore confirm button. */ "Confirm" = "确定"; /* Close Account alert title */ @@ -2117,7 +2126,8 @@ translators: Block name. %s: The localized block name */ /* Title for the app appearance setting for dark mode */ "Dark" = "深色"; -/* Action title. Noun. Opens the user's WordPress.com dashboard in an external browser. */ +/* Action title. Noun. Opens the user's WordPress.com dashboard in an external browser. + Title for dashboard view on the My Site screen */ "Dashboard" = "控制面板"; /* Title for a threat that includes the number of database rows affected */ @@ -2174,7 +2184,6 @@ translators: Block name. %s: The localized block name */ "Defaults for New Posts" = "新文章的默认设置"; /* Delete - Delete button title Delete button title for the warning shown to the user when he refuses to re-login when the authToken is missing. Title for button that permanently deletes a media item (photo / video) Title for button that permanently deletes one or more media items (photos / videos) @@ -2533,7 +2542,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Each block has its own settings. To find them, tap on a block. Its settings will appear on the toolbar at the bottom of the screen." = "每个区块都有各自的设置。要找到这些设置,请点击一个区块。区块的设置将出现在屏幕底部的工具栏上。"; -/* Edit the post. +/* Accessibility label for edit button to enable multi selection mode in the user's media library + Edit the post. Editing GIF alert default action button. Edits a Comment Edits the comment @@ -2740,6 +2750,9 @@ translators: Block name. %s: The localized block name */ /* Secondary message shown when there are no domains that match the user entered text. */ "Enter different words above and we'll look for an address that matches it." = "在上面输入不同的字词,我们会查找与其相符的地址。"; +/* Accessibility hint for edit button to enable multi selection mode in the user's media library */ +"Enter edit mode to enable multi select to delete" = "Enter edit mode to enable multi select to delete"; + /* (placeholder) Help enter WordPress password Placeholder of a field to type a password to protect the post. */ "Enter password" = "输入密码"; @@ -2790,9 +2803,6 @@ translators: Block name. %s: The localized block name */ /* There was an error activating a plugin, placeholder is the plugin name */ "Error activating %@." = "激活 %@ 时出错。"; -/* Message shown when approving a Comment fails. */ -"Error approving comment" = "批准评论时出错"; - /* Message displayed when approving a comment fails. */ "Error approving comment." = "批准评论时出错。"; @@ -2802,9 +2812,6 @@ translators: Block name. %s: The localized block name */ /* There was an error deactivating a plugin, placeholder is the plugin name */ "Error deactivating %@." = "停用 %@ 时出错。"; -/* Message shown when deleting a Comment fails. */ -"Error deleting comment" = "删除评论时出错"; - /* Message displayed when deleting a comment fails. */ "Error deleting comment." = "删除评论时出错。"; @@ -2832,9 +2839,6 @@ translators: Block name. %s: The localized block name */ /* Messaged displayed when fetching plugins failed. */ "Error loading plugins" = "加载插件时出错"; -/* Message shown when marking a Comment as spam fails. */ -"Error marking comment as spam" = "将评论标记为垃圾时出错"; - /* Message displayed when spamming a comment fails. */ "Error marking comment as spam." = "将评论标记为垃圾时出错。"; @@ -2874,12 +2878,12 @@ translators: Block name. %s: The localized block name */ /* Generic message shown when there was an error trying to re-send email verification. */ "Error sending verification email. Check your connection and try again." = "发送验证电子邮件时发生错误。请检查连接并重试。"; +/* Message displayed when approving a comment fails. */ +"Error setting comment to approved." = "Error setting comment to approved."; + /* Message displayed when pending a comment fails. */ "Error setting comment to pending." = "将评论设置为待处理时出错。"; -/* Message shown when unapproving a Comment fails. */ -"Error unapproving comment" = "取消批准评论时出错"; - /* There was an error updating a plugin, placeholder is the plugin name */ "Error updating %@." = "更新 %@ 时出错。"; @@ -3199,6 +3203,9 @@ translators: Block name. %s: The localized block name */ /* Next web page */ "Forward" = "转发"; +/* No comment provided by engineer. */ +"Four" = "Four"; + /* Browse free themes selection title */ "Free" = "免费"; @@ -3235,6 +3242,9 @@ translators: Block name. %s: The localized block name */ /* translators: accessibility text. %s: gallery caption. */ "Gallery caption. %s" = "图库说明。%s"; +/* No comment provided by engineer. */ +"Gallery style" = "Gallery style"; + /* An example tag used in the login prologue screens. */ "Gardening" = "园艺"; @@ -3853,6 +3863,9 @@ translators: Block name. %s: The localized block name */ User's Last Name */ "Last Name" = "姓氏"; +/* Content of a weekly roundup push notification containing stats about the user's site. The % markers are placeholders and will be replaced by the appropriate number of views, comments, and likes. The numbers indicate the order, so they can be rearranged if necessary – 1 is views, 2 is comments, 3 is likes. */ +"Last week you had %1$d views, %2$d comments and %3$d likes." = "Last week you had %1$d views, %2$d comments and %3$d likes."; + /* Insights latest post summary header */ "Latest Post Summary" = "最新的文章摘要"; @@ -4442,6 +4455,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Navigates to customize the gradient" = "导航以自定义渐变"; +/* No comment provided by engineer. */ +"Navigates to layout selection screen" = "Navigates to layout selection screen"; + /* translators: %s: Select control button label e.g. Small translators: %s: Select control button label e.g. \"Button width\" */ "Navigates to select %s" = "导航至选择%s"; @@ -4513,6 +4529,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Table view title for the quick start section. */ "Next Steps" = "后续步骤"; +/* Accessibility label for the button which shows the previous month in the monthly calendar view */ +"Next month" = "Next month"; + /* Accessibility label for the next notification button */ "Next notification" = "下一条通知"; @@ -4611,6 +4630,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ Text shown when there is no data to display in the stats list view. */ "No data yet" = "尚无数据"; +/* Accessibility label for no currently selected range. */ +"No date range selected" = "No date range selected"; + /* Title for the view when there aren't any fixed threats to display */ "No fixed threats" = "没有已修复的威胁"; @@ -4886,12 +4908,18 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* A subtitle with more detailed info for the user when no WordPress.com sites could be found. */ "Once you create a WordPress.com site, you can reblog content that you like to your own site." = "创建 WordPress.com 站点后,您可以将喜欢的内容转载到您自己的站点。"; +/* No comment provided by engineer. */ +"One" = "One"; + /* Subtitle displayed when the user has removed all Insights from display. */ "Only see the most relevant stats. Add insights to fit your needs." = "仅查看相关性较大的统计信息。添加数据分析以符合您的需求。"; /* No comment provided by engineer. */ "Only show excerpt" = "仅显示摘录"; +/* Message telling the user that they've only enabled limited photo library permissions for the app. */ +"Only the selected photos you've given access to are available." = "Only the selected photos you've given access to are available."; + /* An informal exclaimation that means `something went wrong`. Title for the view when there's an error loading Activity Log Title for the view when there's an error loading scan status @@ -5478,6 +5506,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Description of a Quick Start Tour */ "Preview your new site to see what your visitors will see." = "预览新网站以查看访问者将看到的内容。"; +/* Accessibility label for the button which shows the previous month in the monthly calendar view */ +"Previous month" = "Previous month"; + /* Accessibility label for the previous notification button */ "Previous notification" = "上一条通知"; @@ -5775,7 +5806,7 @@ translators: %s: Select control button label e.g. \"Button width\" */ "Remove Site Icon" = "删除站点图标"; /* No comment provided by engineer. */ -"Remove as Featured Image " = "移除特色图片"; +"Remove as Featured Image" = "Remove as Featured Image"; /* No comment provided by engineer. */ "Remove block" = "移除区块"; @@ -6235,6 +6266,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Register Domain - Domain contact information field placeholder for Country */ "Select Country" = "选择国家\/地区"; +/* Title of button that allows the user to select more photos to access within the app */ +"Select More" = "Select More"; + /* Blog Picker's Title */ "Select Site" = "选择站点"; @@ -6298,6 +6332,12 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Error message when user tries a no longer existent video media object. */ "Selected media is unavailable." = "所选媒体不可用。"; +/* Accessibility label for summary of currently single date. %1$@ is the date */ +"Selected range: %1$@ only" = "Selected range: %1$@ only"; + +/* Accessibility label for summary of currently selected range. %1$@ is the start date, %2$@ is the end date. */ +"Selected range: %1$@ to %2$@" = "Selected range: %1$@ to %2$@"; + /* translators: %s: Select font size option value e.g: \"Selected: Large\". translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Selected: %s" = "已选择:%s"; @@ -6358,7 +6398,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Set Parent" = "设置父项"; /* No comment provided by engineer. */ -"Set as Featured Image " = "设为特色图片"; +"Set as Featured Image" = "Set as Featured Image"; /* Label for a button that sets the selected page as the site's Homepage */ "Set as Homepage" = "设为主页"; @@ -6576,6 +6616,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Title for the Language Picker View */ "Site Language" = "站点语言"; +/* Title for the site menu view on the My Site screen */ +"Site Menu" = "Site Menu"; + /* Describes a site redirect domain */ "Site Redirect" = "站点重定向"; @@ -6763,7 +6806,6 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Button title for Spam comment state. Marks comment as spam. - Spam Title of spam Comments filter. */ "Spam" = "垃圾评论"; @@ -7106,7 +7148,8 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Description shown when a user logs in with Google but no matching WordPress.com account is found */ "The Google account \"%@\" doesn't match any account on WordPress.com" = "Google 账户“%@”与 WordPress.com 上的任何账户均不匹配"; -/* Message of error prompt shown when a user tries to perform an action without an internet connection. */ +/* Error message shown when a media upload fails because the user isn't connected to the Internet. + Message of error prompt shown when a user tries to perform an action without an internet connection. */ "The Internet connection appears to be offline." = "未连接网络。"; /* Message informing the user that the site title can only be changed by an administrator user. */ @@ -7145,8 +7188,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Message shown when an image failed to load while trying to add it to the Media library. */ "The image could not be added to the Media Library." = "无法将图片添加到媒体库。"; -/* Error message shown when a media upload fails because the user isn't connected to the internet. - Message of error prompt shown when a user tries to perform an action without an internet connection. */ +/* Message of error prompt shown when a user tries to perform an action without an internet connection. */ "The internet connection appears to be offline." = "似乎您没有联网。"; /* Message shown when an asset failed to load while trying to add it to the Media library. */ @@ -7182,6 +7224,12 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Description shown in alert to confirm skipping all quick start items */ "The quick start tour will guide you through building a basic site. Are you sure you want to skip? " = "快速启动指南将指引您创建一个基础的站点。是否确定要跳过?"; +/* A failure reason for when the request couldn't be serialized. */ +"The serialization of the request failed." = "The serialization of the request failed."; + +/* A failure reason for when the response couldn't be serialized. */ +"The serialization of the response failed." = "The serialization of the response failed."; + /* No comment provided by engineer. */ "The server returned an empty response. This usually means you need to increase the memory limit for your site." = "服务器返回空响应。通常,这表明您需要增加站点的内存限制。"; @@ -7282,6 +7330,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Error message informing the user that there was a problem blocking posts from a site from their reader. */ "There was a problem blocking posts from the specified site." = "阻止来自指定站点的文章时出现问题。"; +/* A general error message shown to the user when there was an API communication failure. */ +"There was a problem communicating with the site." = "There was a problem communicating with the site."; + /* Message for the warning shown to the user when the app realizes there should be an auth token but there isn't one. */ "There was a problem connecting to WordPress.com. Please log in again." = "连接到 WordPress.com 时出现问题。请重新登录。"; @@ -7450,12 +7501,18 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Message displayed when a threat is ignored successfully. */ "Threat ignored." = "已忽略威胁。"; +/* No comment provided by engineer. */ +"Three" = "Three"; + /* Thumbnail image size. Should be the same as in core WP. */ "Thumbnail" = "缩略图"; /* Message shown if a thumbnail preview of a media item unavailable. */ "Thumbnail unavailable." = "缩图不可用。"; +/* No comment provided by engineer. */ +"Tiled gallery settings" = "Tiled gallery settings"; + /* Blog Writing Settings: Time Format Writing Time Format Settings Title */ "Time Format" = "时间格式"; @@ -7600,13 +7657,16 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* No comment provided by engineer. */ "Transform block…" = "转换区块…"; -/* Accessibility label for trash buttons in nav bars +/* Accessibility label for trash button to delete items from the user's media library + Accessibility label for trash buttons in nav bars Button title for Trash comment state. - Trash button title Trashes a comment Trashes the comment */ "Trash" = "移到回收站"; +/* Accessibility hint for trash button to delete items from the user's media library */ +"Trash selected media" = "Trash selected media"; + /* Title of the trash page confirmation alert. */ "Trash this page?" = "是否将此页面放入回收站?"; @@ -7687,6 +7747,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Title for the setting to edit the twitter username used when sharing to twitter. */ "Twitter Username" = "Twitter 用户名"; +/* No comment provided by engineer. */ +"Two" = "Two"; + /* Type menu item in share extension. */ "Type" = "类型"; @@ -7783,7 +7846,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Unable to play video" = "无法播放视频"; /* No comment provided by engineer. */ -"Unable to read the WordPress site at that URL. Tap 'Need Help?' to view the FAQ." = "无法通过该 URL 读取 WordPress 站点。轻点“需要帮助?”,以查看常见问题解答。"; +"Unable to read the WordPress site at that URL. Tap 'Need more help?' to view the FAQ." = "Unable to read the WordPress site at that URL. Tap 'Need more help?' to view the FAQ."; /* Title for the Jetpack Restore Failed message. */ "Unable to restore your site" = "无法恢复您的站点"; @@ -7866,6 +7929,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Underline" = "下划线"; /* Button in the notification presented in Reader when a post removed from saved for later + Button title. Reverts a comment moderation action. Button title. Reverts the previous notification operation Revert an operation The title of an 'undo' button. Tapping the button moves a trashed page out of the trash folder. @@ -8524,9 +8588,13 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Blog Writing Settings: Weeks starts on */ "Week starts on" = "每星期开始于"; -/* Setting: indicates if the site reports its Weekly Roundup */ +/* Setting: indicates if the site reports its Weekly Roundup + Title of Weekly Roundup push notification */ "Weekly Roundup" = "每周综述"; +/* Title of Weekly Roundup push notification. %@ is a placeholder and will be replaced with the title of one of the user's websites. */ +"Weekly Roundup: %@" = "Weekly Roundup: %@"; + /* Title of Weeks stats filter. */ "Weeks" = "周"; @@ -8830,12 +8898,12 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* A text for subtitle label on Login epilogue screen */ "You can switch sites at any time." = "您可以随时切换站点。"; +/* Prompt shown on the Blogging Reminders Settings screen. */ +"You can update this any time" = "You can update this any time"; + /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "您可以随时通过“我的站点”>“站点设置”更新此设置"; -/* Prompt shown on the Blogging Reminders Settings screen. */ -"You can update this anytime" = "您可以随时更新"; - /* No comment provided by engineer. */ "You cannot use that email address to signup. We are having problems with them blocking some of our email. Please use another email provider." = "这个 E-mail 地址不可用。我们发现这个 E-mail 提供商会屏蔽我们的邮件,请更换一个。"; @@ -9059,6 +9127,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* The default Jetpack view message */ "Your website credentials will not be stored and are used only for the purpose of installing Jetpack." = "系统将不会存储您的网站凭据,并且仅将其用于安装 Jetpack。"; +/* Prompt displayed as part of the stats Weekly Roundup push notification. */ +"Your weekly roundup is ready, tap here to see the details!" = "Your weekly roundup is ready, tap here to see the details!"; + /* Describes the expected behavior when the user disables in-app notifications in Reader Comments. */ "You’re following this conversation. You will receive an email and a notification whenever a new comment is made." = "您已关注此对话。当有新评论时,您将会收到一封电子邮件及通知。"; diff --git a/WordPress/Resources/zh-Hant.lproj/Localizable.strings b/WordPress/Resources/zh-Hant.lproj/Localizable.strings index 9b7df4ff8696..8d5d03abf7c5 100644 --- a/WordPress/Resources/zh-Hant.lproj/Localizable.strings +++ b/WordPress/Resources/zh-Hant.lproj/Localizable.strings @@ -468,7 +468,8 @@ translators: Block name. %s: The localized block name */ /* Label for the Activity Type filter button when there are more than 1 activity type selected */ "Activity Type (%1$d)" = "活動類型 (%1$d)"; -/* Remove asset from media picker list */ +/* Accessibility label for add button to add items to the user's media library + Remove asset from media picker list */ "Add" = "新增"; /* Action for Media Picker to indicate selection of media. The argument in the string represents the number of elements (as numeric digits) selected */ @@ -564,6 +565,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Add menu item to children" = "將選單項目新增至子項目"; +/* Accessibility hint for add button to add items to the user's media library */ +"Add new media" = "Add new media"; + /* Screen reader text for Menus button that adds a new menu to a site. */ "Add new menu" = "新增選單"; @@ -704,6 +708,12 @@ translators: Block name. %s: The localized block name */ /* Title of a row displayed on the debug screen used to indicate whether crash logs should be forced to send, even if they otherwise wouldn't */ "Always Send Crash Logs" = "一律傳送故障記錄"; +/* A failure reason for when an error HTTP status code was returned from the site, with the specific error code. */ +"An HTTP error code %i was returned." = "An HTTP error code %i was returned."; + +/* A failure reason for when an error HTTP status code was returned from the site. */ +"An HTTP error code was returned." = "An HTTP error code was returned."; + /* Error message when loading failed because there's no connection */ "An active internet connection is required" = "需要有效的網際網路連線"; @@ -756,6 +766,9 @@ translators: Block name. %s: The localized block name */ /* Text displayed when a stat section failed to load. */ "An error occurred." = "發生錯誤。"; +/* A failure reason for when the error that occured wasn't able to be determined. */ +"An unknown error occurred." = "An unknown error occurred."; + /* Error message shown when a media upload fails for unknown reason and the user should try again. */ "An unknown error occurred. Please try again." = "發生不明的錯誤。請再試一次。"; @@ -817,18 +830,9 @@ translators: Block name. %s: The localized block name */ /* Message prompting the user to confirm that they want to disconnect Jetpack from the site. */ "Are you sure you want to disconnect Jetpack from the site?" = "你確定要中斷Jetpack?"; -/* Message asking for confirmation before marking a comment as spam */ -"Are you sure you want to mark this comment as Spam?" = "確定要將這則留言標記為垃圾嗎?"; - -/* Message asking for confirmation before marking a comment as trash */ -"Are you sure you want to mark this comment as Trash?" = "確定要將這則留言標示為垃圾嗎?"; - /* Message prompting the user to confirm that they want to permanently delete a group of media items. */ "Are you sure you want to permanently delete these items?" = "確定要永久刪除選取的項目?"; -/* Message asking for confirmation on comment deletion */ -"Are you sure you want to permanently delete this comment?" = "確定要永久刪除此留言?"; - /* Message prompting the user to confirm that they want to permanently delete a media item. Should match Calypso. */ "Are you sure you want to permanently delete this item?" = "確定要永久刪除這些項目?"; @@ -1292,6 +1296,9 @@ translators: Block name. %s: The localized block name */ Main title */ "Change Password" = "變更密碼"; +/* Title of button that takes user to the system Settings section for the app */ +"Change Settings" = "Change Settings"; + /* Title of an alert prompting the user that they are about to change the blog they are posting to. */ "Change Site" = "變更網站"; @@ -1587,6 +1594,9 @@ translators: Block name. %s: The localized block name */ My First Post */ "Comment on" = "對以下文章的留言:"; +/* Message displayed when approving a comment succeeds. */ +"Comment set to approved." = "Comment set to approved."; + /* Message displayed when pending a comment succeeds. */ "Comment set to pending." = "已將留言設為待審核。"; @@ -1677,8 +1687,7 @@ translators: Block name. %s: The localized block name */ /* Section title for the configure table section in the blog details screen */ "Configure" = "設定"; -/* Confirm - Verb. Title for Jetpack Restore confirm button. */ +/* Verb. Title for Jetpack Restore confirm button. */ "Confirm" = "確定"; /* Close Account alert title */ @@ -2117,7 +2126,8 @@ translators: Block name. %s: The localized block name */ /* Title for the app appearance setting for dark mode */ "Dark" = "深色系"; -/* Action title. Noun. Opens the user's WordPress.com dashboard in an external browser. */ +/* Action title. Noun. Opens the user's WordPress.com dashboard in an external browser. + Title for dashboard view on the My Site screen */ "Dashboard" = "控制台"; /* Title for a threat that includes the number of database rows affected */ @@ -2174,7 +2184,6 @@ translators: Block name. %s: The localized block name */ "Defaults for New Posts" = "新文章預設值"; /* Delete - Delete button title Delete button title for the warning shown to the user when he refuses to re-login when the authToken is missing. Title for button that permanently deletes a media item (photo / video) Title for button that permanently deletes one or more media items (photos / videos) @@ -2533,7 +2542,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Each block has its own settings. To find them, tap on a block. Its settings will appear on the toolbar at the bottom of the screen." = "每個區塊都有其各自的設定。 若要找到這些設定,請點選區塊。 區塊設定會顯示在畫面底部的工具列。"; -/* Edit the post. +/* Accessibility label for edit button to enable multi selection mode in the user's media library + Edit the post. Editing GIF alert default action button. Edits a Comment Edits the comment @@ -2740,6 +2750,9 @@ translators: Block name. %s: The localized block name */ /* Secondary message shown when there are no domains that match the user entered text. */ "Enter different words above and we'll look for an address that matches it." = "請在上方輸入其他文字,我們會尋找與其相符的地址。"; +/* Accessibility hint for edit button to enable multi selection mode in the user's media library */ +"Enter edit mode to enable multi select to delete" = "Enter edit mode to enable multi select to delete"; + /* (placeholder) Help enter WordPress password Placeholder of a field to type a password to protect the post. */ "Enter password" = "輸入密碼"; @@ -2790,9 +2803,6 @@ translators: Block name. %s: The localized block name */ /* There was an error activating a plugin, placeholder is the plugin name */ "Error activating %@." = "啟用 %@ 時發生錯誤。"; -/* Message shown when approving a Comment fails. */ -"Error approving comment" = "核准留言時發生錯誤"; - /* Message displayed when approving a comment fails. */ "Error approving comment." = "核准留言時發生錯誤。"; @@ -2802,9 +2812,6 @@ translators: Block name. %s: The localized block name */ /* There was an error deactivating a plugin, placeholder is the plugin name */ "Error deactivating %@." = "停用 %@ 時發生錯誤。"; -/* Message shown when deleting a Comment fails. */ -"Error deleting comment" = "刪除留言時發生錯誤"; - /* Message displayed when deleting a comment fails. */ "Error deleting comment." = "刪除留言時發生錯誤。"; @@ -2832,9 +2839,6 @@ translators: Block name. %s: The localized block name */ /* Messaged displayed when fetching plugins failed. */ "Error loading plugins" = "載入外掛程式時發生錯誤"; -/* Message shown when marking a Comment as spam fails. */ -"Error marking comment as spam" = "將留言標示為垃圾訊息時發生錯誤"; - /* Message displayed when spamming a comment fails. */ "Error marking comment as spam." = "將留言標示為垃圾時發生錯誤。"; @@ -2874,12 +2878,12 @@ translators: Block name. %s: The localized block name */ /* Generic message shown when there was an error trying to re-send email verification. */ "Error sending verification email. Check your connection and try again." = "傳送驗證電子郵件時發生錯誤。請檢查你的連線並再試一次。"; +/* Message displayed when approving a comment fails. */ +"Error setting comment to approved." = "Error setting comment to approved."; + /* Message displayed when pending a comment fails. */ "Error setting comment to pending." = "將留言設為待審核時發生錯誤。"; -/* Message shown when unapproving a Comment fails. */ -"Error unapproving comment" = "取消核准留言時發生錯誤"; - /* There was an error updating a plugin, placeholder is the plugin name */ "Error updating %@." = "更新 %@ 時發生錯誤。"; @@ -3199,6 +3203,9 @@ translators: Block name. %s: The localized block name */ /* Next web page */ "Forward" = "轉寄"; +/* No comment provided by engineer. */ +"Four" = "Four"; + /* Browse free themes selection title */ "Free" = "免費"; @@ -3235,6 +3242,9 @@ translators: Block name. %s: The localized block name */ /* translators: accessibility text. %s: gallery caption. */ "Gallery caption. %s" = "圖庫標題。%s"; +/* No comment provided by engineer. */ +"Gallery style" = "Gallery style"; + /* An example tag used in the login prologue screens. */ "Gardening" = "園藝"; @@ -3853,6 +3863,9 @@ translators: Block name. %s: The localized block name */ User's Last Name */ "Last Name" = "姓氏"; +/* Content of a weekly roundup push notification containing stats about the user's site. The % markers are placeholders and will be replaced by the appropriate number of views, comments, and likes. The numbers indicate the order, so they can be rearranged if necessary – 1 is views, 2 is comments, 3 is likes. */ +"Last week you had %1$d views, %2$d comments and %3$d likes." = "Last week you had %1$d views, %2$d comments and %3$d likes."; + /* Insights latest post summary header */ "Latest Post Summary" = "最新文章摘要"; @@ -4442,6 +4455,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Navigates to customize the gradient" = "瀏覽至自訂漸層色彩"; +/* No comment provided by engineer. */ +"Navigates to layout selection screen" = "Navigates to layout selection screen"; + /* translators: %s: Select control button label e.g. Small translators: %s: Select control button label e.g. \"Button width\" */ "Navigates to select %s" = "前往選取 %s"; @@ -4513,6 +4529,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Table view title for the quick start section. */ "Next Steps" = "後續步驟"; +/* Accessibility label for the button which shows the previous month in the monthly calendar view */ +"Next month" = "Next month"; + /* Accessibility label for the next notification button */ "Next notification" = "下一則通知"; @@ -4611,6 +4630,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ Text shown when there is no data to display in the stats list view. */ "No data yet" = "尚無日期"; +/* Accessibility label for no currently selected range. */ +"No date range selected" = "No date range selected"; + /* Title for the view when there aren't any fixed threats to display */ "No fixed threats" = "沒有已修正的威脅"; @@ -4886,12 +4908,18 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* A subtitle with more detailed info for the user when no WordPress.com sites could be found. */ "Once you create a WordPress.com site, you can reblog content that you like to your own site." = "建立 WordPress.com 網站後,可以將喜歡的內容轉發到自己的網站。"; +/* No comment provided by engineer. */ +"One" = "One"; + /* Subtitle displayed when the user has removed all Insights from display. */ "Only see the most relevant stats. Add insights to fit your needs." = "只查看最相關的統計資料。新增洞察報告,滿足您的需求。"; /* No comment provided by engineer. */ "Only show excerpt" = "只顯示摘要"; +/* Message telling the user that they've only enabled limited photo library permissions for the app. */ +"Only the selected photos you've given access to are available." = "Only the selected photos you've given access to are available."; + /* An informal exclaimation that means `something went wrong`. Title for the view when there's an error loading Activity Log Title for the view when there's an error loading scan status @@ -5478,6 +5506,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Description of a Quick Start Tour */ "Preview your new site to see what your visitors will see." = "預覽你的新網站即可查看訪客將會看到的內容。"; +/* Accessibility label for the button which shows the previous month in the monthly calendar view */ +"Previous month" = "Previous month"; + /* Accessibility label for the previous notification button */ "Previous notification" = "上一則通知"; @@ -5775,7 +5806,7 @@ translators: %s: Select control button label e.g. \"Button width\" */ "Remove Site Icon" = "移除網站圖示"; /* No comment provided by engineer. */ -"Remove as Featured Image " = "移除特色圖片 "; +"Remove as Featured Image" = "Remove as Featured Image"; /* No comment provided by engineer. */ "Remove block" = "移除區塊"; @@ -6235,6 +6266,9 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Register Domain - Domain contact information field placeholder for Country */ "Select Country" = "選取國家\/地區"; +/* Title of button that allows the user to select more photos to access within the app */ +"Select More" = "Select More"; + /* Blog Picker's Title */ "Select Site" = "選取網站"; @@ -6298,6 +6332,12 @@ translators: %s: Select control button label e.g. \"Button width\" */ /* Error message when user tries a no longer existent video media object. */ "Selected media is unavailable." = "無法使用已選取的媒體。"; +/* Accessibility label for summary of currently single date. %1$@ is the date */ +"Selected range: %1$@ only" = "Selected range: %1$@ only"; + +/* Accessibility label for summary of currently selected range. %1$@ is the start date, %2$@ is the end date. */ +"Selected range: %1$@ to %2$@" = "Selected range: %1$@ to %2$@"; + /* translators: %s: Select font size option value e.g: \"Selected: Large\". translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Selected: %s" = "已選取:%s"; @@ -6358,7 +6398,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Set Parent" = "設定上層項目"; /* No comment provided by engineer. */ -"Set as Featured Image " = "設為精選圖片 "; +"Set as Featured Image" = "Set as Featured Image"; /* Label for a button that sets the selected page as the site's Homepage */ "Set as Homepage" = "設為首頁"; @@ -6576,6 +6616,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Title for the Language Picker View */ "Site Language" = "網站語言"; +/* Title for the site menu view on the My Site screen */ +"Site Menu" = "Site Menu"; + /* Describes a site redirect domain */ "Site Redirect" = "網站重新導向"; @@ -6763,7 +6806,6 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Button title for Spam comment state. Marks comment as spam. - Spam Title of spam Comments filter. */ "Spam" = "垃圾迴響"; @@ -7106,7 +7148,8 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Description shown when a user logs in with Google but no matching WordPress.com account is found */ "The Google account \"%@\" doesn't match any account on WordPress.com" = "沒有任何與 Google 帳號「%@」匹配的 WordPress.com 帳號"; -/* Message of error prompt shown when a user tries to perform an action without an internet connection. */ +/* Error message shown when a media upload fails because the user isn't connected to the Internet. + Message of error prompt shown when a user tries to perform an action without an internet connection. */ "The Internet connection appears to be offline." = "看來網際網路連線狀態為離線。"; /* Message informing the user that the site title can only be changed by an administrator user. */ @@ -7145,8 +7188,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Message shown when an image failed to load while trying to add it to the Media library. */ "The image could not be added to the Media Library." = "無法將圖片新增到媒體庫。"; -/* Error message shown when a media upload fails because the user isn't connected to the internet. - Message of error prompt shown when a user tries to perform an action without an internet connection. */ +/* Message of error prompt shown when a user tries to perform an action without an internet connection. */ "The internet connection appears to be offline." = "網路似乎斷線囉!"; /* Message shown when an asset failed to load while trying to add it to the Media library. */ @@ -7182,6 +7224,12 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Description shown in alert to confirm skipping all quick start items */ "The quick start tour will guide you through building a basic site. Are you sure you want to skip? " = "快速入門導覽將引導你建立基本網站。確定要略過?"; +/* A failure reason for when the request couldn't be serialized. */ +"The serialization of the request failed." = "The serialization of the request failed."; + +/* A failure reason for when the response couldn't be serialized. */ +"The serialization of the response failed." = "The serialization of the response failed."; + /* No comment provided by engineer. */ "The server returned an empty response. This usually means you need to increase the memory limit for your site." = "伺服器傳回空白回應。這通常代表你必須增加網站的記憶體限制。"; @@ -7282,6 +7330,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Error message informing the user that there was a problem blocking posts from a site from their reader. */ "There was a problem blocking posts from the specified site." = "封鎖指定網站的文章時發生問題。"; +/* A general error message shown to the user when there was an API communication failure. */ +"There was a problem communicating with the site." = "There was a problem communicating with the site."; + /* Message for the warning shown to the user when the app realizes there should be an auth token but there isn't one. */ "There was a problem connecting to WordPress.com. Please log in again." = "連線到 WordPress.com 時發生問題。請重新登入。"; @@ -7450,12 +7501,18 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Message displayed when a threat is ignored successfully. */ "Threat ignored." = "已忽略威脅。"; +/* No comment provided by engineer. */ +"Three" = "Three"; + /* Thumbnail image size. Should be the same as in core WP. */ "Thumbnail" = "縮圖"; /* Message shown if a thumbnail preview of a media item unavailable. */ "Thumbnail unavailable." = "無法檢視縮圖。"; +/* No comment provided by engineer. */ +"Tiled gallery settings" = "Tiled gallery settings"; + /* Blog Writing Settings: Time Format Writing Time Format Settings Title */ "Time Format" = "時間格式"; @@ -7600,13 +7657,16 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* No comment provided by engineer. */ "Transform block…" = "轉換區塊…"; -/* Accessibility label for trash buttons in nav bars +/* Accessibility label for trash button to delete items from the user's media library + Accessibility label for trash buttons in nav bars Button title for Trash comment state. - Trash button title Trashes a comment Trashes the comment */ "Trash" = "移至垃圾桶"; +/* Accessibility hint for trash button to delete items from the user's media library */ +"Trash selected media" = "Trash selected media"; + /* Title of the trash page confirmation alert. */ "Trash this page?" = "是否要清除此頁面?"; @@ -7687,6 +7747,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Title for the setting to edit the twitter username used when sharing to twitter. */ "Twitter Username" = "Twitter 使用者名稱"; +/* No comment provided by engineer. */ +"Two" = "Two"; + /* Type menu item in share extension. */ "Type" = "類型"; @@ -7783,7 +7846,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Unable to play video" = "無法播放影片"; /* No comment provided by engineer. */ -"Unable to read the WordPress site at that URL. Tap 'Need Help?' to view the FAQ." = "無法透過該 URL 讀取 WordPress 網站。點選「需要說明?」即可檢視常見問題集。"; +"Unable to read the WordPress site at that URL. Tap 'Need more help?' to view the FAQ." = "Unable to read the WordPress site at that URL. Tap 'Need more help?' to view the FAQ."; /* Title for the Jetpack Restore Failed message. */ "Unable to restore your site" = "無法還原網站"; @@ -7866,6 +7929,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "Underline" = "底線"; /* Button in the notification presented in Reader when a post removed from saved for later + Button title. Reverts a comment moderation action. Button title. Reverts the previous notification operation Revert an operation The title of an 'undo' button. Tapping the button moves a trashed page out of the trash folder. @@ -8524,9 +8588,13 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* Blog Writing Settings: Weeks starts on */ "Week starts on" = "每週開始於"; -/* Setting: indicates if the site reports its Weekly Roundup */ +/* Setting: indicates if the site reports its Weekly Roundup + Title of Weekly Roundup push notification */ "Weekly Roundup" = "每週綜合整理"; +/* Title of Weekly Roundup push notification. %@ is a placeholder and will be replaced with the title of one of the user's websites. */ +"Weekly Roundup: %@" = "Weekly Roundup: %@"; + /* Title of Weeks stats filter. */ "Weeks" = "週"; @@ -8830,12 +8898,12 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* A text for subtitle label on Login epilogue screen */ "You can switch sites at any time." = "你可以隨時切換網站。"; +/* Prompt shown on the Blogging Reminders Settings screen. */ +"You can update this any time" = "You can update this any time"; + /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "你可以隨時前往「我的網站」>「網站設定」更新此設定。"; -/* Prompt shown on the Blogging Reminders Settings screen. */ -"You can update this anytime" = "你可以隨時更新"; - /* No comment provided by engineer. */ "You cannot use that email address to signup. We are having problems with them blocking some of our email. Please use another email provider." = "你無法使用該電子郵件地址註冊。我們無法使用這些電子郵件地址,因為它們會阻擋我們的某些郵件。請使用其他電子郵件供應商。"; @@ -9059,6 +9127,9 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ /* The default Jetpack view message */ "Your website credentials will not be stored and are used only for the purpose of installing Jetpack." = "我們不會儲存你的網站憑證,而且只會將其用於安裝 Jetpack。"; +/* Prompt displayed as part of the stats Weekly Roundup push notification. */ +"Your weekly roundup is ready, tap here to see the details!" = "Your weekly roundup is ready, tap here to see the details!"; + /* Describes the expected behavior when the user disables in-app notifications in Reader Comments. */ "You’re following this conversation. You will receive an email and a notification whenever a new comment is made." = "你正在追蹤此討論。 有留言時,你會收到電子郵件和通知。"; From 55156a1a5f5c1dfaae5d793b7c6f267fa7d8a30a Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Wed, 26 Jan 2022 12:40:44 +0100 Subject: [PATCH 070/114] Update metadata translations --- fastlane/metadata/ar-SA/release_notes.txt | 12 ------------ fastlane/metadata/de-DE/release_notes.txt | 12 ------------ fastlane/metadata/default/release_notes.txt | 12 ------------ fastlane/metadata/en-GB/release_notes.txt | 12 ------------ fastlane/metadata/en-US/release_notes.txt | 12 ------------ fastlane/metadata/es-ES/release_notes.txt | 12 ------------ fastlane/metadata/es-MX/release_notes.txt | 12 ------------ fastlane/metadata/fr-FR/release_notes.txt | 12 ------------ fastlane/metadata/he/release_notes.txt | 12 ------------ fastlane/metadata/id/release_notes.txt | 12 ------------ fastlane/metadata/it/release_notes.txt | 12 ------------ fastlane/metadata/ja/release_notes.txt | 12 ------------ fastlane/metadata/ko/release_notes.txt | 12 ------------ fastlane/metadata/nl-NL/release_notes.txt | 12 ------------ fastlane/metadata/pt-BR/release_notes.txt | 12 ------------ fastlane/metadata/ru/release_notes.txt | 12 ------------ fastlane/metadata/sv/release_notes.txt | 12 ------------ fastlane/metadata/tr/release_notes.txt | 12 ------------ fastlane/metadata/zh-Hans/release_notes.txt | 12 ------------ fastlane/metadata/zh-Hant/release_notes.txt | 12 ------------ 20 files changed, 240 deletions(-) delete mode 100644 fastlane/metadata/ar-SA/release_notes.txt delete mode 100644 fastlane/metadata/de-DE/release_notes.txt delete mode 100644 fastlane/metadata/default/release_notes.txt delete mode 100644 fastlane/metadata/en-GB/release_notes.txt delete mode 100644 fastlane/metadata/en-US/release_notes.txt delete mode 100644 fastlane/metadata/es-ES/release_notes.txt delete mode 100644 fastlane/metadata/es-MX/release_notes.txt delete mode 100644 fastlane/metadata/fr-FR/release_notes.txt delete mode 100644 fastlane/metadata/he/release_notes.txt delete mode 100644 fastlane/metadata/id/release_notes.txt delete mode 100644 fastlane/metadata/it/release_notes.txt delete mode 100644 fastlane/metadata/ja/release_notes.txt delete mode 100644 fastlane/metadata/ko/release_notes.txt delete mode 100644 fastlane/metadata/nl-NL/release_notes.txt delete mode 100644 fastlane/metadata/pt-BR/release_notes.txt delete mode 100644 fastlane/metadata/ru/release_notes.txt delete mode 100644 fastlane/metadata/sv/release_notes.txt delete mode 100644 fastlane/metadata/tr/release_notes.txt delete mode 100644 fastlane/metadata/zh-Hans/release_notes.txt delete mode 100644 fastlane/metadata/zh-Hant/release_notes.txt diff --git a/fastlane/metadata/ar-SA/release_notes.txt b/fastlane/metadata/ar-SA/release_notes.txt deleted file mode 100644 index 9b0ec5dfa366..000000000000 --- a/fastlane/metadata/ar-SA/release_notes.txt +++ /dev/null @@ -1,12 +0,0 @@ -ما الساعة الآن؟ تعرف شاشة اختيار المنطقة الزمنية الجديدة الخاصة بنا. احصل على منطقة زمنية مقترحة بناءً على جهازك وقم بتحسين البحث بينما تقوم بذلك. - -إذا كنت تستخدم خطة مجانية ، فسيتم تقييد عمليات رفع مقاطع الفيديو الآن إلى خمس دقائق لكل ملف. لا تقلق، لن يؤثر ذلك في أي مقاطع فيديو قمت برفعها بالفعل إلى موقعك. - -لقد أجرينا كذلك بعض التغييرات على محرِّر المكوِّنات: - -- قمنا بإصلاح مشكلات الترجمة التي تسببت في ظهور بعض من عناصر واجهة المستخدم (مثل، معلومات محاذاة النص والنافذة المشروطة لمحرِّر المكوِّنات) باللغة الإنجليزية فقط. -- أضفنا ترجمة اللغات إلى Jetpack ومكوِّنات شبكة التخطيط. -- قمنا بإصلاح خطأ كان سيقوم بإعادة تعيين تنسيق النص إلى الإعداد الافتراضي بعد االضغط على زر الرجوع إلى الخلف. النمط الغامق يا أصدقاء. -- تمت محاذاة عناوين المكوِّن متعدد الأسطر الآن إلى الوسط في قائمة أداة الإدراج. - -وأخيرًا، يعود صف "مشاركة ووردبريس مع صديق" إلى حيث ينتمي على شاشة صفحتي الرئيسية. تم لم شملهم، وإنه شعور جيد للغاية. diff --git a/fastlane/metadata/de-DE/release_notes.txt b/fastlane/metadata/de-DE/release_notes.txt deleted file mode 100644 index fc5b3901ff8f..000000000000 --- a/fastlane/metadata/de-DE/release_notes.txt +++ /dev/null @@ -1,12 +0,0 @@ -Wie spät ist es? Unsere brandneue Ansicht zur Zeitzonenauswahl kennt die Antwort. Erhalte eine vorgeschlagene Zeitzone basierend auf deinem Gerät und verbessere damit deine Suche. - -Im Kostenlos-Tarif sind Video-Uploads nun auf fünf Minuten pro Datei beschränkt. Aber sei unbesorgt: Videos, die du bereits auf deiner Website hochgeladen hast, sind davon nicht betroffen. - -Wir haben auch ein paar Änderungen am Block-Editor vorgenommen: - -– Es wurden Übersetzungsprobleme behoben, durch die einige Elemente der Benutzeroberfläche (wie die Informationen zur Textausrichtung und das modale Fenster des Block-Editors) nur auf Englisch angezeigt wurden. -– Es wurden Sprachübersetzungen für Jetpack- und Layoutraster-Blöcke hinzugefügt. -– Es wurde ein Fehler behoben, aufgrund dessen die Textformatierung nach dem Drücken auf die Rücktaste auf Standard zurückgesetzt wurde. Dem Fettdruck steht jetzt also nichts mehr im Wege. -– Blocktitel mit mehreren Zeilen werden im Inserter-Menü nun zentriert ausgerichtet. - -Und zu guter Letzt: Die Zeile „Teile WordPress mit einem Freund“ wird nun wieder wie gewohnt in der „Ich“-Ansicht angezeigt. Gut, dass alles wieder beim Alten ist. diff --git a/fastlane/metadata/default/release_notes.txt b/fastlane/metadata/default/release_notes.txt deleted file mode 100644 index b26682ae7c00..000000000000 --- a/fastlane/metadata/default/release_notes.txt +++ /dev/null @@ -1,12 +0,0 @@ -What time is it? Our brand-new time zone selection screen knows. Get a suggested time zone based on your device and improve search while you’re at it. - -If you’re using a free plan, video uploads are now limited to five minutes per file. Don’t worry, that won’t affect any videos you’ve already uploaded to your site. - -We’ve also made some changes to the block editor: - -- We solved translation issues that caused some user interface elements (like text alignment information and the block editor modal window) to only appear in English. -- We added language translation for Jetpack and Layout Grid blocks. -- We fixed a bug that would reset text formatting to default after hitting backspace. Bold on, friends. -- Multi-line block titles are now center-aligned in the inserter menu. - -Finally, the “Share WordPress with a friend” row is back where it belongs on the Me screen. Reunited and it feels so good. diff --git a/fastlane/metadata/en-GB/release_notes.txt b/fastlane/metadata/en-GB/release_notes.txt deleted file mode 100644 index e5df533b5a7e..000000000000 --- a/fastlane/metadata/en-GB/release_notes.txt +++ /dev/null @@ -1,12 +0,0 @@ -What time is it? Our brand-new time zone selection screen knows. Get a suggested time zone based on your device and improve search while you’re at it. - -If you’re using a free plan, video uploads are now limited to five minutes per file. Don’t worry, that won’t affect any videos you’ve already uploaded to your site. - -We’ve also made some changes to the block editor: - -– We solved translation issues that caused some user interface elements (like text alignment information and the block editor modal window) to only appear in English. -– We added language translation for Jetpack and Layout Grid blocks. -– We fixed a bug that would reset text formatting to default after hitting backspace. Bold on, friends. -– Multi-line block titles are now centre-aligned in the inserter menu. - -Finally, the “Share WordPress with a friend” row is back where it belongs on the Me screen. Reunited and it feels so good. diff --git a/fastlane/metadata/en-US/release_notes.txt b/fastlane/metadata/en-US/release_notes.txt deleted file mode 100644 index b26682ae7c00..000000000000 --- a/fastlane/metadata/en-US/release_notes.txt +++ /dev/null @@ -1,12 +0,0 @@ -What time is it? Our brand-new time zone selection screen knows. Get a suggested time zone based on your device and improve search while you’re at it. - -If you’re using a free plan, video uploads are now limited to five minutes per file. Don’t worry, that won’t affect any videos you’ve already uploaded to your site. - -We’ve also made some changes to the block editor: - -- We solved translation issues that caused some user interface elements (like text alignment information and the block editor modal window) to only appear in English. -- We added language translation for Jetpack and Layout Grid blocks. -- We fixed a bug that would reset text formatting to default after hitting backspace. Bold on, friends. -- Multi-line block titles are now center-aligned in the inserter menu. - -Finally, the “Share WordPress with a friend” row is back where it belongs on the Me screen. Reunited and it feels so good. diff --git a/fastlane/metadata/es-ES/release_notes.txt b/fastlane/metadata/es-ES/release_notes.txt deleted file mode 100644 index 0380ea0ef23d..000000000000 --- a/fastlane/metadata/es-ES/release_notes.txt +++ /dev/null @@ -1,12 +0,0 @@ -¿Qué hora es? Nuestra nueva pantalla de selección de zona horaria lo sabe. Obtén una sugerencia de zona horaria basada en tu dispositivo y mejora la búsqueda mientras lo haces. - -Si estás usando un plan gratuito, las subidas de vídeos ahora está limitada a cinco minutos por archivo. No te preocupes, eso no afectará a ningún vídeo que ya hayas subido a tu sitio. - -También hemos realizado algunos cambios en el editor de bloques: - -- Hemos resuelto problemas de traducción que causaban que algunos elementos de la interfaz de usuario (como la alineación del texto de la información y la ventana emergente del editor de bloques) solo aparecieran en inglés. -- Hemos añadido la traducción de idiomas para los bloques de Jetpack y de diseño en cuadrícula. -- Hemos corregido un fallo que restablecía el formato del texto a los valores por defecto después de pulsar la tecla de retroceso. Audaces, amigos. -- Los títulos de los bloques de varias líneas ahora están alineados al centro en el menú del insertador. - -Finalmente, la fila «Compartir WordPress con un amigo» ha vuelto a donde debía en la pantalla «Yo». Vueltos a reunir y se ven muy bien. diff --git a/fastlane/metadata/es-MX/release_notes.txt b/fastlane/metadata/es-MX/release_notes.txt deleted file mode 100644 index ba9398156ed1..000000000000 --- a/fastlane/metadata/es-MX/release_notes.txt +++ /dev/null @@ -1,12 +0,0 @@ -¿Qué hora es? Nuestra nueva pantalla de selección de zona horaria lo sabe. Obtén una sugerencia de zona horaria basada en tu dispositivo y mejora la búsqueda mientras lo haces. - -Si estás usando un plan gratuito, las subidas de videos ahora está limitada a cinco minutos por archivo. No te preocupes, eso no afectará a ningún video que ya hayas subido a tu sitio. - -También hemos realizado algunos cambios en el editor de bloques: - -- Hemos resuelto problemas de traducción que causaban que algunos elementos de la interfaz de usuario (como la alineación del texto de la información y la ventana emergente del editor de bloques) solo aparecieran en inglés. -- Hemos añadido la traducción de idiomas para los bloques de Jetpack y de layout en cuadrícula. -- Hemos corregido un fallo que restablecía el formato del texto a los valores predeterminados después de pulsar la tecla de retroceso. Audaces, amigos. -- Los títulos de los bloques de varias líneas ahora están alineados al centro en el menú del insertador. - -Finalmente, la fila "Compartir WordPress con un amigo" ha vuelto a donde debía en la pantalla "Yo". Vueltos a reunir y se ven muy bien. diff --git a/fastlane/metadata/fr-FR/release_notes.txt b/fastlane/metadata/fr-FR/release_notes.txt deleted file mode 100644 index bccbb3c1efd7..000000000000 --- a/fastlane/metadata/fr-FR/release_notes.txt +++ /dev/null @@ -1,12 +0,0 @@ -Quelle heure est-il ? Notre tout nouvel écran de sélection du fuseau horaire a la réponse. Obtenez une suggestion de fuseau horaire en fonction de votre appareil et améliorez la recherche dans la foulée. - -Si vous utilisez un plan gratuit, les chargements vidéo sont désormais limités à cinq minutes par fichier. Pas de panique : cela n’affectera pas les vidéos que vous avez déjà mises en ligne sur votre site. - -Nous avons également apporté certains changements à l’éditeur de blocs. - -- Nous avons résolu les problèmes de traduction qui faisaient que certains éléments de l’interface utilisateur (comme les informations sur l’alignement du texte et la fenêtre modale de l’éditeur de blocs) n’apparaissaient qu’en anglais. -- Nous avons ajouté la traduction pour Jetpack et les blocs de grille de mise en page. -- Nous avons corrigé un bug qui réinitialisait le formatage du texte par défaut après avoir appuyé sur la touche Retour arrière. Foncez, les amis. -- Les titres de blocs à plusieurs lignes sont désormais alignés au centre dans le menu d’insertion. - -Enfin, la ligne « Partager WordPress avec un ami » est de retour à sa place sur l’écran de profil. C’est si bon d’être réunis ! diff --git a/fastlane/metadata/he/release_notes.txt b/fastlane/metadata/he/release_notes.txt deleted file mode 100644 index 3426c793f393..000000000000 --- a/fastlane/metadata/he/release_notes.txt +++ /dev/null @@ -1,12 +0,0 @@ -מה השעה? כדאי לשאול את המסך החדש שהוספנו לבחירת אזור הזמן. אפשר לקבל הצעות לאזור הזמן לפי המכשיר שלך ובאותה ההזדמנות, גם לשפר את החיפוש. - -אם בחרת להשתמש בתוכנית החינמית, העלאת הסרטונים מוגבלת כעת לחמש דקות לכל קובץ. אל דאגה, ההגדרה הזאת לא תשפיע על סרטונים שכבר העלית לאתר. - -ביצענו גם כמה שינויים בעורך הבלוקים: - -- פתרנו בעיות בתרגום שגרמו לכמה אלמנטים בממשק המשתמש (כגון פרטים על יישור הטקסט וחלון המודאל בעורך הבלוקים) להופיע באנגלית. -- הוספנו שפות לתרגומי הבלוקים של Jetpack ורשת פריסות. -- תיקנו באג שאיפס את העיצוב של הטקסט לברירת המחדל לאחר הקשה על מקש המחיקה. כל המודגש, יודגש. -- כותרות בלוקים בנות מספר שורות כעת מיושרות למרכז בתפריט של מוסיף הבלוקים. - -אחרון חביב, השורה "לשתף את WordPress עם חברים" חזרה למקומה הראוי במסך 'אני'. כמה טוב ששבה הביתה. diff --git a/fastlane/metadata/id/release_notes.txt b/fastlane/metadata/id/release_notes.txt deleted file mode 100644 index 0c630ca1ca2c..000000000000 --- a/fastlane/metadata/id/release_notes.txt +++ /dev/null @@ -1,12 +0,0 @@ -Sekarang pukul berapa ya? Layar pemilihan zona waktu baru kami bisa memberi tahu Anda. Dapatkan saran zona waktu berdasarkan perangkat Anda sekaligus tingkatkan pencarian. - -Jika Anda menggunakan paket gratis, unggahan video kini dibatasi hanya lima menit per file. Jangan khawatir, kebijakan ini tidak akan memengaruhi video yang telah diunggah ke situs Anda. - -Kami juga melakukan sejumlah perubahan pada editor blok: - -- Kami memperbaiki masalah terjemahan yang menyebabkan sejumlah elemen antarmuka pengguna (seperti informasi perataan teks dan jendela modal editor blok) hanya muncul dalam bahasa Inggris. -- Kami menambahkan terjemahan bahasa untuk blok Jetpack dan Petak Tata Letak. -- Kami memperbaiki bug yang akan menyetel ulang pemformatan teks ke asal setelah menekan backspace. Aman, teman. -- Sekarang, judul blok lebih dari satu baris pada menu penyisip rata tengah. - -Terakhir, baris "Bagikan WordPress pada teman" kembali ke posisi awal di layar Saya. Senang rasanya kembali bersama. diff --git a/fastlane/metadata/it/release_notes.txt b/fastlane/metadata/it/release_notes.txt deleted file mode 100644 index 4629727bb3bd..000000000000 --- a/fastlane/metadata/it/release_notes.txt +++ /dev/null @@ -1,12 +0,0 @@ -Che ore sono? La nostra nuovissima schermata di selezione del fuso orario lo sa. Ottieni un fuso orario suggerito in base al tuo dispositivo e migliora la ricerca mentre ti trovi presso uno di essi. - -Se stai usando un piano gratuito, i caricamenti di video ora sono limitati a cinque minuti per file. Non preoccuparti, ciò non influirà sui video che hai già caricato sul tuo sito. - -Abbiamo anche apportato alcune modifiche all'editor a blocchi: - -- Abbiamo risolto i problemi relativi alle traduzioni che causavano la visualizzazione di alcuni elementi dell'interfaccia utente (come le informazioni sull'allineamento del testo e la finestra modale dell'editor a blocchi) solo in inglese. -- Abbiamo aggiunto la traduzione per i blocchi Jetpack e Griglia di layout. -- Abbiamo corretto un bug che ripristinava la formattazione del testo all'impostazione predefinita dopo che veniva premuto il tasto backspace. In grassetto, amico. -- I titoli dei blocchi multilinea ora sono allineati al centro nel menu dello strumento per l'inserimento. - -Infine, la riga "Condividi WordPress con un amico" è tornata nella posizione che si trova nella schermata Io. Riuniti e felici. diff --git a/fastlane/metadata/ja/release_notes.txt b/fastlane/metadata/ja/release_notes.txt deleted file mode 100644 index ed555d081eeb..000000000000 --- a/fastlane/metadata/ja/release_notes.txt +++ /dev/null @@ -1,12 +0,0 @@ -時間を設定しますか ? 新しいタイムゾーン選択画面が自動的に設定されます。 ご使用のデバイスに基づいて候補となるタイムゾーンを取得し、デバイスの使用中に検索を改善します。 - -無料プランを使用している場合、動画のアップロードは各ファイル5分に制限されるようになりました。 すでにサイトにアップロード済みの動画には適用されません。 - -ブロックエディターにも変更を加えました。 - -- 一部のユーザーインターフェイスの要素 (テキストの配置情報、ブロックエディターのモーダルウィンドウなど) が英語でしか表示されない原因となる翻訳の問題を解決しました。 -- Jetpack および Layout Grid ブロックの言語翻訳を追加しました。 -- バックスペースを押した後にテキストの書式がデフォルトにリセットされるバグを修正しました。 太字にしてみましょう。 -- 複数行のブロックタイトルは、挿入メニューで中央揃えになりました。 - -「WordPress を友達と共有する」行が Me 画面の元の場所に戻りました。 以前のように快適にご利用いただけます。 diff --git a/fastlane/metadata/ko/release_notes.txt b/fastlane/metadata/ko/release_notes.txt deleted file mode 100644 index df15154ef531..000000000000 --- a/fastlane/metadata/ko/release_notes.txt +++ /dev/null @@ -1,12 +0,0 @@ -몇 시인가요? 새로운 시간대 선택 화면은 알고 있습니다. 기기를 기반으로 제안되는 시간대를 이용하고 기기를 사용하는 동안 검색을 개선하세요. - -무료 요금제를 사용하는 경우 비디오 업로드가 이제는 파일당 5분으로 제한됩니다. 걱정하지 마세요. 이미 사이트에 업로드한 비디오는 영향을 받지 않습니다. - -블록 편집기에서도 몇 가지를 변경했습니다. - -- 일부 사용자 인터페이스 요소(예: 텍스트 정렬 정보, 블록 편집기 모달 창)가 영어로만 표시되는 원인이 되었던 번역 문제를 해결했습니다. -- 젯팩 블록과 레이아웃 그리드에 대한 언어 번역을 추가했습니다. -- 백스페이스 키를 누른 후 텍스트 형식 지정이 기본값으로 초기화되던 버그를 수정했습니다. 과감하게 사용하세요. -- 여러 줄의 블록 제목이 이제는 삽입기 메뉴의 가운데에 정렬됩니다. - -마지막으로, "친구와 워드프레스 공유" 행이 내 계정 화면의 원래 위치로 돌아왔습니다. 다시 통합되었으며 아주 좋아 보입니다. diff --git a/fastlane/metadata/nl-NL/release_notes.txt b/fastlane/metadata/nl-NL/release_notes.txt deleted file mode 100644 index a1a5a05ff626..000000000000 --- a/fastlane/metadata/nl-NL/release_notes.txt +++ /dev/null @@ -1,12 +0,0 @@ -Hoe laat is het? Ons nieuwe scherm voor selectie van de tijdzone weet het. Krijg een voorgestelde tijdzone op basis van je apparaat en verbeter de zoekfunctie. - -Als je een gratis abonnement gebruikt, zijn video-uploads beperkt tot 5 minuten per bestand. Geen zorgen, dit heeft geen invloed op de video's die je al op je site hebt geüpload. - -We hebben ook enkele wijzigingen aangebracht aan de blokeditor: - -- We hebben vertaalproblemen opgelost die ervoor zorgden dat bepaalde elementen van de gebruikersinterface (zoals tekstuitlijning en het modale venster van de blokeditor) alleen zichtbaar waren in het Engels. -- We hebben vertalingen toegevoegd voor Jetpack en indelingsrasterblokken. -- We hebben een bug opgelost die de tekstopmaak terugzette naar standaard als backspace werd gebruikt. Bold on, vrienden. -- Bloktitels met meerdere regels zijn nu in het midden uitgelijnd in het invoegermenu. - -Ten slotte is de regel 'WordPress delen met een vriend' terug waar hij hoort te zijn op het Ik-scherm. Eindelijk weer samen. diff --git a/fastlane/metadata/pt-BR/release_notes.txt b/fastlane/metadata/pt-BR/release_notes.txt deleted file mode 100644 index 051fe29e1191..000000000000 --- a/fastlane/metadata/pt-BR/release_notes.txt +++ /dev/null @@ -1,12 +0,0 @@ -Que horas são? Nossa mais nova tela de seleção de fuso horário sabe. Obtenha um fuso horário sugerido baseado no seu dispositivo e melhore a pesquisa enquanto estiver navegando por ela. - -Se você usa um plano gratuito, os uploads de vídeo agora são limitados a cinco minutos por arquivo. Não se preocupe, isso não afetará os vídeos que já foram enviados para o seu site. - -Nós também fizemos algumas alterações no editor de blocos: - -- Resolvemos problemas de tradução que faziam com que alguns elementos da interface do usuário aparecessem apenas em inglês (como informações de alinhamento do texto e a janela modal do editor de blocos). -- Traduzimos os blocos do Jetpack e layout de grade. -- Corrigimos um erro que redefinia a formatação do texto para o padrão quando a tecla Backspace era pressionada. Soltem a imaginação. -- Os títulos com várias linhas dos blocos agora são centralizados no menu de inserção. - -Por fim, a seção “Compartilhar o WordPress com um amigo” está de volta ao seu lugar na tela Meu perfil. É tão bom vê-los reunidos novamente. diff --git a/fastlane/metadata/ru/release_notes.txt b/fastlane/metadata/ru/release_notes.txt deleted file mode 100644 index 932114e8ab13..000000000000 --- a/fastlane/metadata/ru/release_notes.txt +++ /dev/null @@ -1,12 +0,0 @@ -Который сейчас час? Взгляните на наш совершенно новый экран выбора часового пояса. Установите рекомендуемый часовой пояс с вашего устройства и улучшите поиск, пока вы используете его. - -Если вы используете бесплатный тариф, загрузка видео теперь ограничена пятью минутами на файл. Не волнуйтесь, это не повлияет на видео, которые вы уже загрузили на свой сайт. - -Мы также внесли некоторые изменения в редактор блоков: - -- Мы решили проблемы с переводом, из-за которых некоторые элементы пользовательского интерфейса (например, информация о выравнивании текста и модальное окно редактора блоков) отображались только на английском языке. -- Добавлен языковой перевод для блоков Jetpack и сетка макета. -- Мы исправили ошибку, из-за которой форматирование текста сбрасывалось на значение по умолчанию после нажатия клавиши "назад". -- Заголовки многострочных блоков теперь выравниваются по центру в меню вставки. - -Наконец, строка «Поделитесь WordPress с другом» вернулась на свое место на экране «Мой профиль». Мы воссоединились и это прекрасно. diff --git a/fastlane/metadata/sv/release_notes.txt b/fastlane/metadata/sv/release_notes.txt deleted file mode 100644 index f3c01a6a89bd..000000000000 --- a/fastlane/metadata/sv/release_notes.txt +++ /dev/null @@ -1,12 +0,0 @@ -Vad är klockan? Vår helt nya tidszonsväljare har full koll. Appen föreslår en tidszon utifrån klockan i din enhet och förbättrar sökfunktionen på samma gång. - -Om du använder ett kostnadsfritt paket är nu uppladdning av video begränsat till fem minuter per fil. Men detta påverkar inte de videofiler som du har laddat upp tidigare till webbplatsen, så du behöver inte oroa dig. - -Och vi har gjort några ändringar i blockredigeraren också: - -– Vi har kommit tillrätta med några problem som gjorde att vissa element i gränssnittet inte kunde översättas (t.ex. information om textjustering och blockredigerarens modala fönster) och därför visades på engelska. -– Vi har lagt till möjlighet att översätta för Jetpack och rutnätslayout. -– Vi har rättat ett fel där textens formatering kunde återställas till standardutseendet om du råkade trycka på bakåtsteg. Nu lever fetstilen inte lika osäkert längre! -– Flerradiga blockrubriker är nu centrerade i infogningsmenyn. - -Slutligen är raden ”Dela WordPress med en vän” tillbaka där den hör hemma på sidan ”Mig”. Det är skönt att ordningen är återställd. diff --git a/fastlane/metadata/tr/release_notes.txt b/fastlane/metadata/tr/release_notes.txt deleted file mode 100644 index 28984755e06b..000000000000 --- a/fastlane/metadata/tr/release_notes.txt +++ /dev/null @@ -1,12 +0,0 @@ -Saat kaç? Yepyeni saat dilimi seçim ekranımız bilir. Cihazınıza göre bir saat dilimi önerisi alın ve bu sırada aramayı iyileştirin. - -Ücretsiz bir paket kullanıyorsanız video yüklemeleri artık dosya başına beş dakika ile sınırlıdır. Endişelenmeyin; bu, sitenize daha önce yüklemiş olduğunuz videoları etkilemeyecektir. - -Blok düzenleyicide de bazı değişiklikler yaptık: - -- Bazı kullanıcı arayüzü öğelerinin (metin hizalama bilgileri ve blok düzenleyici mod penceresi gibi) yalnızca İngilizce görünmesine neden olan çeviri sorunlarını çözdük. -- Jetpack ve Düzen Izgarası blokları için dil çevirisi ekledik. -- Geri al tuşuna bastıktan sonra metin biçimlendirmesinin varsayılan ayara sıfırlanmasına neden olan bir hatayı düzelttik. Cesur olun arkadaşlar. -- Çok satırlı blok başlıkları artık ekleyici menüsünde ortaya hizalanmıştır. - -Son olarak, “WordPress'i bir arkadaşınızla paylaşın” satırı, Ben ekranında ait olduğu yere geri döndü. Yeniden bir araya geldiler ve bu da çok iyi duruyor. diff --git a/fastlane/metadata/zh-Hans/release_notes.txt b/fastlane/metadata/zh-Hans/release_notes.txt deleted file mode 100644 index bd909cdf69ee..000000000000 --- a/fastlane/metadata/zh-Hans/release_notes.txt +++ /dev/null @@ -1,12 +0,0 @@ -想知道时间? 我们新推出的时区选择屏幕可以告诉您。 根据您的设备获取建议时区,并在使用该时区时改善搜索结果。 - -如果您使用免费套餐,则上传的每个视频文件的最大长度为 5 分钟。 不必担心,这不会影响任何您已经上传到站点的视频。 - -我们还对区块编辑器进行了一些改动: - -- 我们解决了一些翻译问题,这些问题会导致有些用户界面元素(例如文本对齐消息和区块编辑器模式窗口)仅以英语显示。 -- 我们为 Jetpack 和 Layout Grid 区块添加了语言翻译。 -- 我们修复了一项错误,该错误会导致按退格键后将文本格式重置为默认格式。 尝试下加粗吧! -- 多行区块标题现在在插入器菜单中居中对齐。 - -最后,“将 WordPress 与您的朋友分享”行回到了它在“我”屏幕上的相应位置。 看起来很不错。 diff --git a/fastlane/metadata/zh-Hant/release_notes.txt b/fastlane/metadata/zh-Hant/release_notes.txt deleted file mode 100644 index c9864d3c7d8b..000000000000 --- a/fastlane/metadata/zh-Hant/release_notes.txt +++ /dev/null @@ -1,12 +0,0 @@ -現在幾點鐘? 我們的全新時區選擇畫面可以告訴你。 根據你的裝置取得建議使用的時區,並據此改善搜尋功能。 - -如果你使用免費方案,影片上傳限制已改為每個檔案五分鐘。 別擔心,這不會影響已經上傳到網站的任何影片。 - -我們也為區塊編輯器做出一些變更: - -- 解決讓某些使用者介面元素 (比如文字對齊資訊和區塊編輯器模式視窗) 只能以英文顯示的翻譯問題。 -- 為 Jetpack 和格狀版面區塊新增語言翻譯。 -- 修正在按下退格鍵後,文字格式會重設為預設格式的錯誤。 放心使用粗體吧,各位。 -- 現在在插入工具選單中,多行區塊標題會置中對齊。 - -最後,現在「向朋友推薦 WordPress」列已經回到「我」畫面上它應該在的地方。 再次團圓讓人感覺很好。 From 2d5438d4e056a48fc979bbdf3172f2fe3ffbe4e4 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Wed, 26 Jan 2022 12:41:01 +0100 Subject: [PATCH 071/114] Bump version number --- config/Version.internal.xcconfig | 2 +- config/Version.public.xcconfig | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/config/Version.internal.xcconfig b/config/Version.internal.xcconfig index a888f0207cdd..1aadbf3c1740 100644 --- a/config/Version.internal.xcconfig +++ b/config/Version.internal.xcconfig @@ -1,4 +1,4 @@ VERSION_SHORT=19.1 // Internal long version example: VERSION_LONG=9.9.0.20180423 -VERSION_LONG=19.1.0.20220124 +VERSION_LONG=19.1.0.20220126 diff --git a/config/Version.public.xcconfig b/config/Version.public.xcconfig index 0eaa35916edb..5d30385da570 100644 --- a/config/Version.public.xcconfig +++ b/config/Version.public.xcconfig @@ -1,4 +1,4 @@ VERSION_SHORT=19.1 // Public long version example: VERSION_LONG=9.9.0.0 -VERSION_LONG=19.1.0.0 +VERSION_LONG=19.1.0.1 From a344d3dfde00b42b898d902127eaba794d3b27a5 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Wed, 26 Jan 2022 12:42:33 +0100 Subject: [PATCH 072/114] Manually track deleted release notes from Jetpack metadata folders --- fastlane/jetpack_metadata/ar-SA/release_notes.txt | 12 ------------ fastlane/jetpack_metadata/de-DE/release_notes.txt | 12 ------------ fastlane/jetpack_metadata/es-ES/release_notes.txt | 12 ------------ fastlane/jetpack_metadata/fr-FR/release_notes.txt | 12 ------------ fastlane/jetpack_metadata/he/release_notes.txt | 12 ------------ fastlane/jetpack_metadata/id/release_notes.txt | 12 ------------ fastlane/jetpack_metadata/it/release_notes.txt | 12 ------------ fastlane/jetpack_metadata/ja/release_notes.txt | 12 ------------ fastlane/jetpack_metadata/ko/release_notes.txt | 12 ------------ fastlane/jetpack_metadata/nl-NL/release_notes.txt | 12 ------------ fastlane/jetpack_metadata/pt-BR/release_notes.txt | 12 ------------ fastlane/jetpack_metadata/ru/release_notes.txt | 12 ------------ fastlane/jetpack_metadata/sv/release_notes.txt | 12 ------------ fastlane/jetpack_metadata/tr/release_notes.txt | 12 ------------ fastlane/jetpack_metadata/zh-Hans/release_notes.txt | 12 ------------ fastlane/jetpack_metadata/zh-Hant/release_notes.txt | 12 ------------ 16 files changed, 192 deletions(-) delete mode 100644 fastlane/jetpack_metadata/ar-SA/release_notes.txt delete mode 100644 fastlane/jetpack_metadata/de-DE/release_notes.txt delete mode 100644 fastlane/jetpack_metadata/es-ES/release_notes.txt delete mode 100644 fastlane/jetpack_metadata/fr-FR/release_notes.txt delete mode 100644 fastlane/jetpack_metadata/he/release_notes.txt delete mode 100644 fastlane/jetpack_metadata/id/release_notes.txt delete mode 100644 fastlane/jetpack_metadata/it/release_notes.txt delete mode 100644 fastlane/jetpack_metadata/ja/release_notes.txt delete mode 100644 fastlane/jetpack_metadata/ko/release_notes.txt delete mode 100644 fastlane/jetpack_metadata/nl-NL/release_notes.txt delete mode 100644 fastlane/jetpack_metadata/pt-BR/release_notes.txt delete mode 100644 fastlane/jetpack_metadata/ru/release_notes.txt delete mode 100644 fastlane/jetpack_metadata/sv/release_notes.txt delete mode 100644 fastlane/jetpack_metadata/tr/release_notes.txt delete mode 100644 fastlane/jetpack_metadata/zh-Hans/release_notes.txt delete mode 100644 fastlane/jetpack_metadata/zh-Hant/release_notes.txt diff --git a/fastlane/jetpack_metadata/ar-SA/release_notes.txt b/fastlane/jetpack_metadata/ar-SA/release_notes.txt deleted file mode 100644 index 9b0ec5dfa366..000000000000 --- a/fastlane/jetpack_metadata/ar-SA/release_notes.txt +++ /dev/null @@ -1,12 +0,0 @@ -ما الساعة الآن؟ تعرف شاشة اختيار المنطقة الزمنية الجديدة الخاصة بنا. احصل على منطقة زمنية مقترحة بناءً على جهازك وقم بتحسين البحث بينما تقوم بذلك. - -إذا كنت تستخدم خطة مجانية ، فسيتم تقييد عمليات رفع مقاطع الفيديو الآن إلى خمس دقائق لكل ملف. لا تقلق، لن يؤثر ذلك في أي مقاطع فيديو قمت برفعها بالفعل إلى موقعك. - -لقد أجرينا كذلك بعض التغييرات على محرِّر المكوِّنات: - -- قمنا بإصلاح مشكلات الترجمة التي تسببت في ظهور بعض من عناصر واجهة المستخدم (مثل، معلومات محاذاة النص والنافذة المشروطة لمحرِّر المكوِّنات) باللغة الإنجليزية فقط. -- أضفنا ترجمة اللغات إلى Jetpack ومكوِّنات شبكة التخطيط. -- قمنا بإصلاح خطأ كان سيقوم بإعادة تعيين تنسيق النص إلى الإعداد الافتراضي بعد االضغط على زر الرجوع إلى الخلف. النمط الغامق يا أصدقاء. -- تمت محاذاة عناوين المكوِّن متعدد الأسطر الآن إلى الوسط في قائمة أداة الإدراج. - -وأخيرًا، يعود صف "مشاركة ووردبريس مع صديق" إلى حيث ينتمي على شاشة صفحتي الرئيسية. تم لم شملهم، وإنه شعور جيد للغاية. diff --git a/fastlane/jetpack_metadata/de-DE/release_notes.txt b/fastlane/jetpack_metadata/de-DE/release_notes.txt deleted file mode 100644 index fc5b3901ff8f..000000000000 --- a/fastlane/jetpack_metadata/de-DE/release_notes.txt +++ /dev/null @@ -1,12 +0,0 @@ -Wie spät ist es? Unsere brandneue Ansicht zur Zeitzonenauswahl kennt die Antwort. Erhalte eine vorgeschlagene Zeitzone basierend auf deinem Gerät und verbessere damit deine Suche. - -Im Kostenlos-Tarif sind Video-Uploads nun auf fünf Minuten pro Datei beschränkt. Aber sei unbesorgt: Videos, die du bereits auf deiner Website hochgeladen hast, sind davon nicht betroffen. - -Wir haben auch ein paar Änderungen am Block-Editor vorgenommen: - -– Es wurden Übersetzungsprobleme behoben, durch die einige Elemente der Benutzeroberfläche (wie die Informationen zur Textausrichtung und das modale Fenster des Block-Editors) nur auf Englisch angezeigt wurden. -– Es wurden Sprachübersetzungen für Jetpack- und Layoutraster-Blöcke hinzugefügt. -– Es wurde ein Fehler behoben, aufgrund dessen die Textformatierung nach dem Drücken auf die Rücktaste auf Standard zurückgesetzt wurde. Dem Fettdruck steht jetzt also nichts mehr im Wege. -– Blocktitel mit mehreren Zeilen werden im Inserter-Menü nun zentriert ausgerichtet. - -Und zu guter Letzt: Die Zeile „Teile WordPress mit einem Freund“ wird nun wieder wie gewohnt in der „Ich“-Ansicht angezeigt. Gut, dass alles wieder beim Alten ist. diff --git a/fastlane/jetpack_metadata/es-ES/release_notes.txt b/fastlane/jetpack_metadata/es-ES/release_notes.txt deleted file mode 100644 index ee2cad553259..000000000000 --- a/fastlane/jetpack_metadata/es-ES/release_notes.txt +++ /dev/null @@ -1,12 +0,0 @@ -¿Qué hora es? Nuestra nueva pantalla de selección de zona horaria te lo puede mostrar. Obtén una sugerencia de zona horaria en función de tu dispositivo y mejora la búsqueda mientras lo usas. - -Ahora, en los planes gratuitos, se ha limitado la subida de videos a cinco minutos por archivo. No te preocupes, esta limitación no afectará a los videos que ya hayas subido a tu sitio. - -También hemos realizado algunos cambios en el editor de bloques: - -- Hemos resuelto los problemas de traducción que provocaban que algunos elementos de la interfaz de usuario (como la información de alineación del texto y la ventana modal del editor de bloques) solo aparecieran en inglés. -- Hemos incluido la traducción de idiomas para los bloques de Jetpack y Cuadrícula de diseño. -- Hemos corregido un error que restablecía el formato del texto por defecto después de pulsar la tecla Retroceso. Atentos, amigos. -- Ahora, los títulos de los bloques con varias líneas se alinean al centro en el menú del insertador. - -Por último, hemos vuelto a incorporar la fila "Compartir WordPress con un amigo" en la pantalla "Yo". Juntos y felices de nuevo. diff --git a/fastlane/jetpack_metadata/fr-FR/release_notes.txt b/fastlane/jetpack_metadata/fr-FR/release_notes.txt deleted file mode 100644 index bccbb3c1efd7..000000000000 --- a/fastlane/jetpack_metadata/fr-FR/release_notes.txt +++ /dev/null @@ -1,12 +0,0 @@ -Quelle heure est-il ? Notre tout nouvel écran de sélection du fuseau horaire a la réponse. Obtenez une suggestion de fuseau horaire en fonction de votre appareil et améliorez la recherche dans la foulée. - -Si vous utilisez un plan gratuit, les chargements vidéo sont désormais limités à cinq minutes par fichier. Pas de panique : cela n’affectera pas les vidéos que vous avez déjà mises en ligne sur votre site. - -Nous avons également apporté certains changements à l’éditeur de blocs. - -- Nous avons résolu les problèmes de traduction qui faisaient que certains éléments de l’interface utilisateur (comme les informations sur l’alignement du texte et la fenêtre modale de l’éditeur de blocs) n’apparaissaient qu’en anglais. -- Nous avons ajouté la traduction pour Jetpack et les blocs de grille de mise en page. -- Nous avons corrigé un bug qui réinitialisait le formatage du texte par défaut après avoir appuyé sur la touche Retour arrière. Foncez, les amis. -- Les titres de blocs à plusieurs lignes sont désormais alignés au centre dans le menu d’insertion. - -Enfin, la ligne « Partager WordPress avec un ami » est de retour à sa place sur l’écran de profil. C’est si bon d’être réunis ! diff --git a/fastlane/jetpack_metadata/he/release_notes.txt b/fastlane/jetpack_metadata/he/release_notes.txt deleted file mode 100644 index 3426c793f393..000000000000 --- a/fastlane/jetpack_metadata/he/release_notes.txt +++ /dev/null @@ -1,12 +0,0 @@ -מה השעה? כדאי לשאול את המסך החדש שהוספנו לבחירת אזור הזמן. אפשר לקבל הצעות לאזור הזמן לפי המכשיר שלך ובאותה ההזדמנות, גם לשפר את החיפוש. - -אם בחרת להשתמש בתוכנית החינמית, העלאת הסרטונים מוגבלת כעת לחמש דקות לכל קובץ. אל דאגה, ההגדרה הזאת לא תשפיע על סרטונים שכבר העלית לאתר. - -ביצענו גם כמה שינויים בעורך הבלוקים: - -- פתרנו בעיות בתרגום שגרמו לכמה אלמנטים בממשק המשתמש (כגון פרטים על יישור הטקסט וחלון המודאל בעורך הבלוקים) להופיע באנגלית. -- הוספנו שפות לתרגומי הבלוקים של Jetpack ורשת פריסות. -- תיקנו באג שאיפס את העיצוב של הטקסט לברירת המחדל לאחר הקשה על מקש המחיקה. כל המודגש, יודגש. -- כותרות בלוקים בנות מספר שורות כעת מיושרות למרכז בתפריט של מוסיף הבלוקים. - -אחרון חביב, השורה "לשתף את WordPress עם חברים" חזרה למקומה הראוי במסך 'אני'. כמה טוב ששבה הביתה. diff --git a/fastlane/jetpack_metadata/id/release_notes.txt b/fastlane/jetpack_metadata/id/release_notes.txt deleted file mode 100644 index 0c630ca1ca2c..000000000000 --- a/fastlane/jetpack_metadata/id/release_notes.txt +++ /dev/null @@ -1,12 +0,0 @@ -Sekarang pukul berapa ya? Layar pemilihan zona waktu baru kami bisa memberi tahu Anda. Dapatkan saran zona waktu berdasarkan perangkat Anda sekaligus tingkatkan pencarian. - -Jika Anda menggunakan paket gratis, unggahan video kini dibatasi hanya lima menit per file. Jangan khawatir, kebijakan ini tidak akan memengaruhi video yang telah diunggah ke situs Anda. - -Kami juga melakukan sejumlah perubahan pada editor blok: - -- Kami memperbaiki masalah terjemahan yang menyebabkan sejumlah elemen antarmuka pengguna (seperti informasi perataan teks dan jendela modal editor blok) hanya muncul dalam bahasa Inggris. -- Kami menambahkan terjemahan bahasa untuk blok Jetpack dan Petak Tata Letak. -- Kami memperbaiki bug yang akan menyetel ulang pemformatan teks ke asal setelah menekan backspace. Aman, teman. -- Sekarang, judul blok lebih dari satu baris pada menu penyisip rata tengah. - -Terakhir, baris "Bagikan WordPress pada teman" kembali ke posisi awal di layar Saya. Senang rasanya kembali bersama. diff --git a/fastlane/jetpack_metadata/it/release_notes.txt b/fastlane/jetpack_metadata/it/release_notes.txt deleted file mode 100644 index 4629727bb3bd..000000000000 --- a/fastlane/jetpack_metadata/it/release_notes.txt +++ /dev/null @@ -1,12 +0,0 @@ -Che ore sono? La nostra nuovissima schermata di selezione del fuso orario lo sa. Ottieni un fuso orario suggerito in base al tuo dispositivo e migliora la ricerca mentre ti trovi presso uno di essi. - -Se stai usando un piano gratuito, i caricamenti di video ora sono limitati a cinque minuti per file. Non preoccuparti, ciò non influirà sui video che hai già caricato sul tuo sito. - -Abbiamo anche apportato alcune modifiche all'editor a blocchi: - -- Abbiamo risolto i problemi relativi alle traduzioni che causavano la visualizzazione di alcuni elementi dell'interfaccia utente (come le informazioni sull'allineamento del testo e la finestra modale dell'editor a blocchi) solo in inglese. -- Abbiamo aggiunto la traduzione per i blocchi Jetpack e Griglia di layout. -- Abbiamo corretto un bug che ripristinava la formattazione del testo all'impostazione predefinita dopo che veniva premuto il tasto backspace. In grassetto, amico. -- I titoli dei blocchi multilinea ora sono allineati al centro nel menu dello strumento per l'inserimento. - -Infine, la riga "Condividi WordPress con un amico" è tornata nella posizione che si trova nella schermata Io. Riuniti e felici. diff --git a/fastlane/jetpack_metadata/ja/release_notes.txt b/fastlane/jetpack_metadata/ja/release_notes.txt deleted file mode 100644 index ed555d081eeb..000000000000 --- a/fastlane/jetpack_metadata/ja/release_notes.txt +++ /dev/null @@ -1,12 +0,0 @@ -時間を設定しますか ? 新しいタイムゾーン選択画面が自動的に設定されます。 ご使用のデバイスに基づいて候補となるタイムゾーンを取得し、デバイスの使用中に検索を改善します。 - -無料プランを使用している場合、動画のアップロードは各ファイル5分に制限されるようになりました。 すでにサイトにアップロード済みの動画には適用されません。 - -ブロックエディターにも変更を加えました。 - -- 一部のユーザーインターフェイスの要素 (テキストの配置情報、ブロックエディターのモーダルウィンドウなど) が英語でしか表示されない原因となる翻訳の問題を解決しました。 -- Jetpack および Layout Grid ブロックの言語翻訳を追加しました。 -- バックスペースを押した後にテキストの書式がデフォルトにリセットされるバグを修正しました。 太字にしてみましょう。 -- 複数行のブロックタイトルは、挿入メニューで中央揃えになりました。 - -「WordPress を友達と共有する」行が Me 画面の元の場所に戻りました。 以前のように快適にご利用いただけます。 diff --git a/fastlane/jetpack_metadata/ko/release_notes.txt b/fastlane/jetpack_metadata/ko/release_notes.txt deleted file mode 100644 index df15154ef531..000000000000 --- a/fastlane/jetpack_metadata/ko/release_notes.txt +++ /dev/null @@ -1,12 +0,0 @@ -몇 시인가요? 새로운 시간대 선택 화면은 알고 있습니다. 기기를 기반으로 제안되는 시간대를 이용하고 기기를 사용하는 동안 검색을 개선하세요. - -무료 요금제를 사용하는 경우 비디오 업로드가 이제는 파일당 5분으로 제한됩니다. 걱정하지 마세요. 이미 사이트에 업로드한 비디오는 영향을 받지 않습니다. - -블록 편집기에서도 몇 가지를 변경했습니다. - -- 일부 사용자 인터페이스 요소(예: 텍스트 정렬 정보, 블록 편집기 모달 창)가 영어로만 표시되는 원인이 되었던 번역 문제를 해결했습니다. -- 젯팩 블록과 레이아웃 그리드에 대한 언어 번역을 추가했습니다. -- 백스페이스 키를 누른 후 텍스트 형식 지정이 기본값으로 초기화되던 버그를 수정했습니다. 과감하게 사용하세요. -- 여러 줄의 블록 제목이 이제는 삽입기 메뉴의 가운데에 정렬됩니다. - -마지막으로, "친구와 워드프레스 공유" 행이 내 계정 화면의 원래 위치로 돌아왔습니다. 다시 통합되었으며 아주 좋아 보입니다. diff --git a/fastlane/jetpack_metadata/nl-NL/release_notes.txt b/fastlane/jetpack_metadata/nl-NL/release_notes.txt deleted file mode 100644 index a1a5a05ff626..000000000000 --- a/fastlane/jetpack_metadata/nl-NL/release_notes.txt +++ /dev/null @@ -1,12 +0,0 @@ -Hoe laat is het? Ons nieuwe scherm voor selectie van de tijdzone weet het. Krijg een voorgestelde tijdzone op basis van je apparaat en verbeter de zoekfunctie. - -Als je een gratis abonnement gebruikt, zijn video-uploads beperkt tot 5 minuten per bestand. Geen zorgen, dit heeft geen invloed op de video's die je al op je site hebt geüpload. - -We hebben ook enkele wijzigingen aangebracht aan de blokeditor: - -- We hebben vertaalproblemen opgelost die ervoor zorgden dat bepaalde elementen van de gebruikersinterface (zoals tekstuitlijning en het modale venster van de blokeditor) alleen zichtbaar waren in het Engels. -- We hebben vertalingen toegevoegd voor Jetpack en indelingsrasterblokken. -- We hebben een bug opgelost die de tekstopmaak terugzette naar standaard als backspace werd gebruikt. Bold on, vrienden. -- Bloktitels met meerdere regels zijn nu in het midden uitgelijnd in het invoegermenu. - -Ten slotte is de regel 'WordPress delen met een vriend' terug waar hij hoort te zijn op het Ik-scherm. Eindelijk weer samen. diff --git a/fastlane/jetpack_metadata/pt-BR/release_notes.txt b/fastlane/jetpack_metadata/pt-BR/release_notes.txt deleted file mode 100644 index 051fe29e1191..000000000000 --- a/fastlane/jetpack_metadata/pt-BR/release_notes.txt +++ /dev/null @@ -1,12 +0,0 @@ -Que horas são? Nossa mais nova tela de seleção de fuso horário sabe. Obtenha um fuso horário sugerido baseado no seu dispositivo e melhore a pesquisa enquanto estiver navegando por ela. - -Se você usa um plano gratuito, os uploads de vídeo agora são limitados a cinco minutos por arquivo. Não se preocupe, isso não afetará os vídeos que já foram enviados para o seu site. - -Nós também fizemos algumas alterações no editor de blocos: - -- Resolvemos problemas de tradução que faziam com que alguns elementos da interface do usuário aparecessem apenas em inglês (como informações de alinhamento do texto e a janela modal do editor de blocos). -- Traduzimos os blocos do Jetpack e layout de grade. -- Corrigimos um erro que redefinia a formatação do texto para o padrão quando a tecla Backspace era pressionada. Soltem a imaginação. -- Os títulos com várias linhas dos blocos agora são centralizados no menu de inserção. - -Por fim, a seção “Compartilhar o WordPress com um amigo” está de volta ao seu lugar na tela Meu perfil. É tão bom vê-los reunidos novamente. diff --git a/fastlane/jetpack_metadata/ru/release_notes.txt b/fastlane/jetpack_metadata/ru/release_notes.txt deleted file mode 100644 index 2bc3ac86bb27..000000000000 --- a/fastlane/jetpack_metadata/ru/release_notes.txt +++ /dev/null @@ -1,12 +0,0 @@ -Сколько времени? Ответ есть на нашем новом экране выбора часового пояса. Выберите часовой пояс, синхронизированный с вашим устройством, и улучшите поиск. - -Если у вас бесплатный тарифный план, каждое загружаемое видео ограничено пятью минутами. Не волнуйтесь, это не повлияет на видеоролики, которые вы загрузили на сайт ранее. - -Мы также внесли некоторые изменения в редактор блоков. - -— Мы решили проблемы с переводом, из-за которых некоторые элементы интерфейса (например, информация о выравнивании текста и модальное окно редактора блоков) отображались только на английском. -— Мы добавили перевод для блоков Jetpack и разметки «Сетка». -— Мы исправили ошибку, которая приводила к сбросу форматирования текста после нажатия клавиши стирания. Дерзайте, друзья. -— Многострочные заголовки блоков теперь выравниваются по центру в меню вставки. - -Наконец, строка «Поделиться WordPress с другом» вернулась на свое место на экране «Мой профиль». Хорошо снова быть вместе. diff --git a/fastlane/jetpack_metadata/sv/release_notes.txt b/fastlane/jetpack_metadata/sv/release_notes.txt deleted file mode 100644 index 96ce046185e7..000000000000 --- a/fastlane/jetpack_metadata/sv/release_notes.txt +++ /dev/null @@ -1,12 +0,0 @@ -Vad är klockan? Vår helt nya skärm för val av tidszon vet. Få en föreslagen tidszon baserad på din enhet och förbättra sökningen medan du håller på. - -Om du använder ett gratispaket är videouppladdningar nu begränsade till fem minuter per fil. Oroa dig inte, det kommer inte att påverka videor som du redan har laddat upp till din webbplats. - -Vi har också gjort några ändringar i blockredigeraren: - -- Vi har löst översättningsproblem som gjorde att vissa element i användargränssnittet (t.ex. textjusteringsinformation och blockredigerarens modala fönster) bara visades på engelska. -- Vi har lagt till språköversättning för Jetpack- och layoutrutnätsblock. -- Vi har åtgärdat ett fel som återställde textformateringen till standard när användaren tryckte på backsteg. Fetstil, vänner. -- Blockrubriker med flera rader är nu centrerade i infogarmenyn. - -Slutligen är raden "Dela WordPress med en vän" tillbaka på skärmen Mig där den hör hemma. En glad återförening. diff --git a/fastlane/jetpack_metadata/tr/release_notes.txt b/fastlane/jetpack_metadata/tr/release_notes.txt deleted file mode 100644 index 28984755e06b..000000000000 --- a/fastlane/jetpack_metadata/tr/release_notes.txt +++ /dev/null @@ -1,12 +0,0 @@ -Saat kaç? Yepyeni saat dilimi seçim ekranımız bilir. Cihazınıza göre bir saat dilimi önerisi alın ve bu sırada aramayı iyileştirin. - -Ücretsiz bir paket kullanıyorsanız video yüklemeleri artık dosya başına beş dakika ile sınırlıdır. Endişelenmeyin; bu, sitenize daha önce yüklemiş olduğunuz videoları etkilemeyecektir. - -Blok düzenleyicide de bazı değişiklikler yaptık: - -- Bazı kullanıcı arayüzü öğelerinin (metin hizalama bilgileri ve blok düzenleyici mod penceresi gibi) yalnızca İngilizce görünmesine neden olan çeviri sorunlarını çözdük. -- Jetpack ve Düzen Izgarası blokları için dil çevirisi ekledik. -- Geri al tuşuna bastıktan sonra metin biçimlendirmesinin varsayılan ayara sıfırlanmasına neden olan bir hatayı düzelttik. Cesur olun arkadaşlar. -- Çok satırlı blok başlıkları artık ekleyici menüsünde ortaya hizalanmıştır. - -Son olarak, “WordPress'i bir arkadaşınızla paylaşın” satırı, Ben ekranında ait olduğu yere geri döndü. Yeniden bir araya geldiler ve bu da çok iyi duruyor. diff --git a/fastlane/jetpack_metadata/zh-Hans/release_notes.txt b/fastlane/jetpack_metadata/zh-Hans/release_notes.txt deleted file mode 100644 index bd909cdf69ee..000000000000 --- a/fastlane/jetpack_metadata/zh-Hans/release_notes.txt +++ /dev/null @@ -1,12 +0,0 @@ -想知道时间? 我们新推出的时区选择屏幕可以告诉您。 根据您的设备获取建议时区,并在使用该时区时改善搜索结果。 - -如果您使用免费套餐,则上传的每个视频文件的最大长度为 5 分钟。 不必担心,这不会影响任何您已经上传到站点的视频。 - -我们还对区块编辑器进行了一些改动: - -- 我们解决了一些翻译问题,这些问题会导致有些用户界面元素(例如文本对齐消息和区块编辑器模式窗口)仅以英语显示。 -- 我们为 Jetpack 和 Layout Grid 区块添加了语言翻译。 -- 我们修复了一项错误,该错误会导致按退格键后将文本格式重置为默认格式。 尝试下加粗吧! -- 多行区块标题现在在插入器菜单中居中对齐。 - -最后,“将 WordPress 与您的朋友分享”行回到了它在“我”屏幕上的相应位置。 看起来很不错。 diff --git a/fastlane/jetpack_metadata/zh-Hant/release_notes.txt b/fastlane/jetpack_metadata/zh-Hant/release_notes.txt deleted file mode 100644 index c9864d3c7d8b..000000000000 --- a/fastlane/jetpack_metadata/zh-Hant/release_notes.txt +++ /dev/null @@ -1,12 +0,0 @@ -現在幾點鐘? 我們的全新時區選擇畫面可以告訴你。 根據你的裝置取得建議使用的時區,並據此改善搜尋功能。 - -如果你使用免費方案,影片上傳限制已改為每個檔案五分鐘。 別擔心,這不會影響已經上傳到網站的任何影片。 - -我們也為區塊編輯器做出一些變更: - -- 解決讓某些使用者介面元素 (比如文字對齊資訊和區塊編輯器模式視窗) 只能以英文顯示的翻譯問題。 -- 為 Jetpack 和格狀版面區塊新增語言翻譯。 -- 修正在按下退格鍵後,文字格式會重設為預設格式的錯誤。 放心使用粗體吧,各位。 -- 現在在插入工具選單中,多行區塊標題會置中對齊。 - -最後,現在「向朋友推薦 WordPress」列已經回到「我」畫面上它應該在的地方。 再次團圓讓人感覺很好。 From 490d6215cf592e8b6f3cd514fdf0f4d542defbaa Mon Sep 17 00:00:00 2001 From: Leandro Alonso Date: Wed, 26 Jan 2022 09:45:37 -0300 Subject: [PATCH 073/114] fix: crash when tapping the quick actions row --- .../Blog Details/BlogDetailsViewController+QuickActions.swift | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController+QuickActions.swift b/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController+QuickActions.swift index e991f4727c49..ac346dc1c5fc 100644 --- a/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController+QuickActions.swift +++ b/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController+QuickActions.swift @@ -2,8 +2,10 @@ import UIKit extension BlogDetailsViewController { @objc func quickActionsSectionViewModel() -> BlogDetailsSection { + let row = BlogDetailsRow() + row.callback = {} return BlogDetailsSection(title: nil, - rows: [BlogDetailsRow()], + rows: [row], footerTitle: nil, category: .quickAction) } From 78aaebe5824694d3567bd05a528f6b71df74560f Mon Sep 17 00:00:00 2001 From: Leandro Alonso Date: Wed, 26 Jan 2022 10:07:44 -0300 Subject: [PATCH 074/114] fix: remove unnecessary block --- .../Blog Details/Detail Header/BlogDetailHeaderView.swift | 6 ------ 1 file changed, 6 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Blog/Blog Details/Detail Header/BlogDetailHeaderView.swift b/WordPress/Classes/ViewRelated/Blog/Blog Details/Detail Header/BlogDetailHeaderView.swift index 41ae4c4932e0..94d5250c6f5d 100644 --- a/WordPress/Classes/ViewRelated/Blog/Blog Details/Detail Header/BlogDetailHeaderView.swift +++ b/WordPress/Classes/ViewRelated/Blog/Blog Details/Detail Header/BlogDetailHeaderView.swift @@ -154,12 +154,6 @@ class BlogDetailHeaderView: UIView { titleView.bottomAnchor.constraint(equalTo: bottomAnchor) ] - if FeatureFlag.mySiteDashboard.enabled { - constraints.append( - titleView.bottomAnchor.constraint(equalTo: bottomAnchor, constant: -LayoutSpacing.bottom) - ) - } - return constraints } From 9781f26a9af41748464157f018d63d96574bbea5 Mon Sep 17 00:00:00 2001 From: Leandro Alonso Date: Wed, 26 Jan 2022 10:10:35 -0300 Subject: [PATCH 075/114] refactor: extract to a constant and apply the correct value --- .../BlogDetailsViewController+QuickActions.swift | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController+QuickActions.swift b/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController+QuickActions.swift index ac346dc1c5fc..58c554880475 100644 --- a/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController+QuickActions.swift +++ b/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController+QuickActions.swift @@ -28,7 +28,7 @@ extension BlogDetailsViewController { private func setupConstraints() { actionRow.translatesAutoresizingMaskIntoConstraints = false - let widthConstraint = actionRow.widthAnchor.constraint(equalToConstant: 350) + let widthConstraint = actionRow.widthAnchor.constraint(equalToConstant: Constants.maxQuickActionsWidth) widthConstraint.priority = .defaultHigh NSLayoutConstraint.activate([ @@ -40,4 +40,8 @@ extension BlogDetailsViewController { widthConstraint ]) } + + private enum Constants { + static let maxQuickActionsWidth: CGFloat = 390 + } } From 80a2a6bd238ba77a8c340db301a5dde5274cac1e Mon Sep 17 00:00:00 2001 From: Leandro Alonso Date: Wed, 26 Jan 2022 10:13:07 -0300 Subject: [PATCH 076/114] refactor: remove unnecessary code --- .../Blog/Blog Details/Detail Header/ActionRow.swift | 4 ---- 1 file changed, 4 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Blog/Blog Details/Detail Header/ActionRow.swift b/WordPress/Classes/ViewRelated/Blog/Blog Details/Detail Header/ActionRow.swift index 73b80d16b196..a05400320d24 100644 --- a/WordPress/Classes/ViewRelated/Blog/Blog Details/Detail Header/ActionRow.swift +++ b/WordPress/Classes/ViewRelated/Blog/Blog Details/Detail Header/ActionRow.swift @@ -95,10 +95,6 @@ class ActionRow: UIStackView { translatesAutoresizingMaskIntoConstraints = false refreshStackViewVisibility() - backgroundColor = .listForeground - - layer.cornerRadius = 10 - layoutMargins = Constants.margins isLayoutMarginsRelativeArrangement = true } From c4e33807ef07d05c4b481a23d5069c608faabcfa Mon Sep 17 00:00:00 2001 From: Leandro Alonso Date: Wed, 26 Jan 2022 10:16:59 -0300 Subject: [PATCH 077/114] refactor: remove unnecessary constraint --- .../Blog Details/BlogDetailsViewController+QuickActions.swift | 1 - 1 file changed, 1 deletion(-) diff --git a/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController+QuickActions.swift b/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController+QuickActions.swift index 58c554880475..12140c8c9033 100644 --- a/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController+QuickActions.swift +++ b/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController+QuickActions.swift @@ -35,7 +35,6 @@ extension BlogDetailsViewController { actionRow.topAnchor.constraint(equalTo: contentView.topAnchor), actionRow.bottomAnchor.constraint(equalTo: contentView.bottomAnchor), actionRow.leadingAnchor.constraint(greaterThanOrEqualTo: contentView.leadingAnchor), - actionRow.trailingAnchor.constraint(lessThanOrEqualTo: contentView.trailingAnchor), actionRow.centerXAnchor.constraint(equalTo: contentView.centerXAnchor), widthConstraint ]) From 7c27fe405a5b55d247a0e4a5613130ed4df42bed Mon Sep 17 00:00:00 2001 From: Leandro Alonso Date: Wed, 26 Jan 2022 11:18:55 -0300 Subject: [PATCH 078/114] fix: hide quick actions row for larger texts --- .../BlogDetailsViewController+QuickActions.swift | 4 ++++ .../Blog/Blog Details/BlogDetailsViewController.m | 6 ++++++ 2 files changed, 10 insertions(+) diff --git a/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController+QuickActions.swift b/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController+QuickActions.swift index 12140c8c9033..3438fdc4f082 100644 --- a/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController+QuickActions.swift +++ b/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController+QuickActions.swift @@ -9,6 +9,10 @@ extension BlogDetailsViewController { footerTitle: nil, category: .quickAction) } + + @objc func isAccessibilityCategoryEnabled() -> Bool { + tableView.traitCollection.preferredContentSizeCategory.isAccessibilityCategory + } } @objc class QuickActionsCell: UITableViewCell { diff --git a/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController.m b/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController.m index 27560ea255d0..5289e7440444 100644 --- a/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController.m +++ b/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController.m @@ -1402,6 +1402,12 @@ - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { BlogDetailsSection *detailSection = [self.tableSections objectAtIndex:section]; + + /// For larger texts we don't show the quick actions row + if (detailSection.category == BlogDetailsSectionCategoryQuickAction && self.isAccessibilityCategoryEnabled) { + return 0; + } + return [detailSection.rows count]; } From d301048e14d78cd7ef228e5359bcf940e02419de Mon Sep 17 00:00:00 2001 From: Momo Ozawa Date: Tue, 25 Jan 2022 19:14:21 +0000 Subject: [PATCH 079/114] Fix: only add site picker vc if needed This fixes a bug where a sitePicker was getting added to the layout every time a user switched sites. --- .../Blog/My Site/MySiteViewController.swift | 53 ++++++++++++------- 1 file changed, 33 insertions(+), 20 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.swift b/WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.swift index 104e0c22eed5..5999ab377b68 100644 --- a/WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.swift +++ b/WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.swift @@ -74,7 +74,7 @@ class MySiteViewController: UIViewController, NoResultsViewHost { return } - showSitePicker(for: newBlog) + addSitePickerIfNeeded(for: newBlog) showBlogDetails(for: newBlog) } @@ -90,6 +90,8 @@ class MySiteViewController: UIViewController, NoResultsViewHost { private let blogDashboardViewController = BlogDashboardViewController() + private(set) var sitePickerViewController: SitePickerViewController? + /// When we display a no results view, we'll do so in a scrollview so that /// we can allow pull to refresh to sync the user's list of sites. /// @@ -133,24 +135,6 @@ class MySiteViewController: UIViewController, NoResultsViewHost { NotificationCenter.default.addObserver(self, selector: #selector(showAddSelfHostedSite), name: .addSelfHosted, object: nil) } - private func showSitePicker(for blog: Blog) { - guard FeatureFlag.mySiteDashboard.enabled else { - return - } - - let sitePickerViewController = SitePickerViewController(blog: blog, meScenePresenter: meScenePresenter) - - sitePickerViewController.onBlogSwitched = { [weak self] in - self?.blogDetailsViewController?.showInitialDetailsForBlog() - self?.blogDetailsViewController?.tableView.reloadData() - self?.blogDetailsViewController?.preloadMetadata() - } - - addChild(sitePickerViewController) - stackView.insertArrangedSubview(sitePickerViewController.view, at: 0) - sitePickerViewController.didMove(toParent: self) - } - private func setupSegmentedControl() { segmentedControlContainerView.isHidden = !FeatureFlag.mySiteDashboard.enabled @@ -260,7 +244,7 @@ class MySiteViewController: UIViewController, NoResultsViewHost { return } - showSitePicker(for: mainBlog) + addSitePickerIfNeeded(for: mainBlog) showBlogDetails(for: mainBlog) } @@ -520,6 +504,35 @@ class MySiteViewController: UIViewController, NoResultsViewHost { return blogDetailsViewController } + private func addSitePickerIfNeeded(for blog: Blog) { + guard FeatureFlag.mySiteDashboard.enabled else { + return + } + + guard sitePickerViewController == nil else { + return + } + + let sitePickerViewController = makeSitePickerViewController(for: blog) + self.sitePickerViewController = sitePickerViewController + + addChild(sitePickerViewController) + stackView.insertArrangedSubview(sitePickerViewController.view, at: 0) + sitePickerViewController.didMove(toParent: self) + } + + private func makeSitePickerViewController(for blog: Blog) -> SitePickerViewController { + let sitePickerViewController = SitePickerViewController(blog: blog, meScenePresenter: meScenePresenter) + + sitePickerViewController.onBlogSwitched = { [weak self] in + self?.blogDetailsViewController?.showInitialDetailsForBlog() + self?.blogDetailsViewController?.tableView.reloadData() + self?.blogDetailsViewController?.preloadMetadata() + } + + return sitePickerViewController + } + func presentCreateSheet() { blogDetailsViewController?.createButtonCoordinator?.showCreateSheet() } From e53e623ca7ef91e8d24b0fe73431cf6001258971 Mon Sep 17 00:00:00 2001 From: Momo Ozawa Date: Wed, 26 Jan 2022 09:51:56 +0000 Subject: [PATCH 080/114] Fix: add target action for segmented control --- .../ViewRelated/Blog/My Site/MySiteViewController.swift | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.swift b/WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.swift index 5999ab377b68..1cc97c7273df 100644 --- a/WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.swift +++ b/WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.swift @@ -143,6 +143,8 @@ class MySiteViewController: UIViewController, NoResultsViewHost { segmentedControl.insertSegment(withTitle: section.title, at: section.rawValue, animated: false) } segmentedControl.selectedSegmentIndex = 0 + + segmentedControl.addTarget(self, action: #selector(segmentedControlValueChanged(_:)), for: .valueChanged) } /// If the My Site Dashboard feature flag is enabled, then this method builds a layout with the following @@ -265,9 +267,9 @@ class MySiteViewController: UIViewController, NoResultsViewHost { } } - // MARK: - IBAction + // MARK: - Segmented Control - @IBAction func segmentedControlValueChanged(_ sender: Any) { + @objc private func segmentedControlValueChanged(_ sender: Any) { guard let blog = blog, let section = Section(rawValue: segmentedControl.selectedSegmentIndex) else { return From 2a902db8fda892039965750a0ea25e48b7f4d62d Mon Sep 17 00:00:00 2001 From: Leandro Alonso Date: Wed, 26 Jan 2022 12:39:24 -0300 Subject: [PATCH 081/114] fix: quick actions shouldn't be selectable --- .../BlogDetailsViewController+QuickActions.swift | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController+QuickActions.swift b/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController+QuickActions.swift index 3438fdc4f082..bc6616472391 100644 --- a/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController+QuickActions.swift +++ b/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController+QuickActions.swift @@ -27,6 +27,7 @@ extension BlogDetailsViewController { contentView.addSubview(actionRow) setupConstraints() + setupCell() } private func setupConstraints() { @@ -44,6 +45,10 @@ extension BlogDetailsViewController { ]) } + private func setupCell() { + selectionStyle = .none + } + private enum Constants { static let maxQuickActionsWidth: CGFloat = 390 } From 12285469002aa35d2423739f3fc3abaf1fdea23e Mon Sep 17 00:00:00 2001 From: Momo Ozawa Date: Wed, 26 Jan 2022 15:44:00 +0000 Subject: [PATCH 082/114] Refactor: computed blog property If the MSD feature flag is enabled, the current blog should be the SitePickerVC's blog -- since the SitePickerVC is responsible for updating the currently selected blog. --- .../ViewRelated/Blog/My Site/MySiteViewController.swift | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.swift b/WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.swift index 1cc97c7273df..cb517f974257 100644 --- a/WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.swift +++ b/WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.swift @@ -79,7 +79,11 @@ class MySiteViewController: UIViewController, NoResultsViewHost { } get { - return blogDetailsViewController?.blog + guard FeatureFlag.mySiteDashboard.enabled else { + return blogDetailsViewController?.blog + } + + return sitePickerViewController?.blog } } From 1b3ff5968033b0ca9b9ddc19cd2384ff63cd82ca Mon Sep 17 00:00:00 2001 From: Momo Ozawa Date: Wed, 26 Jan 2022 15:47:53 +0000 Subject: [PATCH 083/114] Refactor: add Blog as a parameter for the onBlogSwitched closure Also, extracted the updateChildViewController method to handle updating whichever child vc is currently being shown. --- .../Blog/My Site/MySiteViewController.swift | 22 +++++++++++++++---- .../SitePickerViewController.swift | 9 ++------ 2 files changed, 20 insertions(+), 11 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.swift b/WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.swift index cb517f974257..5c001acaf1cc 100644 --- a/WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.swift +++ b/WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.swift @@ -530,15 +530,29 @@ class MySiteViewController: UIViewController, NoResultsViewHost { private func makeSitePickerViewController(for blog: Blog) -> SitePickerViewController { let sitePickerViewController = SitePickerViewController(blog: blog, meScenePresenter: meScenePresenter) - sitePickerViewController.onBlogSwitched = { [weak self] in - self?.blogDetailsViewController?.showInitialDetailsForBlog() - self?.blogDetailsViewController?.tableView.reloadData() - self?.blogDetailsViewController?.preloadMetadata() + sitePickerViewController.onBlogSwitched = { [weak self] blog in + self?.updateChildViewController(for: blog) } return sitePickerViewController } + private func updateChildViewController(for blog: Blog) { + guard let section = Section(rawValue: segmentedControl.selectedSegmentIndex) else { + return + } + + switch section { + case .siteMenu: + blogDetailsViewController?.blog = blog + blogDetailsViewController?.tableView.reloadData() + blogDetailsViewController?.preloadMetadata() + case .dashboard: + // TODO: Update blog dashboard vc + break + } + } + func presentCreateSheet() { blogDetailsViewController?.createButtonCoordinator?.showCreateSheet() } diff --git a/WordPress/Classes/ViewRelated/Blog/Site Picker/SitePickerViewController.swift b/WordPress/Classes/ViewRelated/Blog/Site Picker/SitePickerViewController.swift index 34d69539d0bd..969cf29d1d6a 100644 --- a/WordPress/Classes/ViewRelated/Blog/Site Picker/SitePickerViewController.swift +++ b/WordPress/Classes/ViewRelated/Blog/Site Picker/SitePickerViewController.swift @@ -10,7 +10,7 @@ final class SitePickerViewController: UIViewController { var siteIconPresenter: SiteIconPickerPresenter? var siteIconPickerPresenter: SiteIconPickerPresenter? - var onBlogSwitched: (() -> Void)? + var onBlogSwitched: ((Blog) -> Void)? let meScenePresenter: ScenePresenter let blogService: BlogService @@ -134,14 +134,9 @@ extension SitePickerViewController: BlogDetailHeaderViewDelegate { extension SitePickerViewController { private func switchToBlog(_ blog: Blog) { - guard let parent = parent as? MySiteViewController else { - return - } - self.blog = blog - parent.blog = blog blogDetailHeaderView.blog = blog - onBlogSwitched?() + onBlogSwitched?(blog) } private func showSiteTitleSettings() { From e13422a4a8d3cd56d4e642b13da6e41e18a59bb7 Mon Sep 17 00:00:00 2001 From: Momo Ozawa Date: Tue, 25 Jan 2022 15:14:18 +0000 Subject: [PATCH 084/114] Refactor: use intrinsic table view for BlogDetailsVC Using IntrinsicTableView allows us to add BlogDetailsVC as a child view controller within a scroll view. --- .../ViewRelated/Blog/Blog Details/BlogDetailsViewController.h | 3 ++- .../ViewRelated/Blog/Blog Details/BlogDetailsViewController.m | 2 +- .../ViewRelated/Notifications/Tools/IntrinsicTableView.swift | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController.h b/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController.h index da8cc15dafff..c3586de69886 100644 --- a/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController.h +++ b/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController.h @@ -3,6 +3,7 @@ @class Blog; @class BlogDetailHeaderView; @class CreateButtonCoordinator; +@class IntrinsicTableView; @protocol BlogDetailHeader; typedef NS_ENUM(NSUInteger, BlogDetailsSectionCategory) { @@ -136,7 +137,7 @@ typedef NS_ENUM(NSUInteger, BlogDetailsNavigationSource) { @property (nonatomic, strong, nonnull) Blog * blog; @property (nonatomic, strong) id _Nonnull meScenePresenter; @property (nonatomic, strong, readonly) CreateButtonCoordinator * _Nullable createButtonCoordinator; -@property (nonatomic, strong, readwrite) UITableView * _Nonnull tableView; +@property (nonatomic, strong, readwrite) IntrinsicTableView * _Nonnull tableView; @property (nonatomic, strong, readonly) BlogDetailHeaderView * _Nonnull headerView; @property (nonatomic) BOOL shouldScrollToViewSite; diff --git a/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController.m b/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController.m index bd8b11cb7166..8a35458fcd5d 100644 --- a/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController.m +++ b/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController.m @@ -326,7 +326,7 @@ - (void)viewDidLoad { [super viewDidLoad]; - _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped]; + _tableView = [[IntrinsicTableView alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped]; self.tableView.delegate = self; self.tableView.dataSource = self; self.tableView.translatesAutoresizingMaskIntoConstraints = false; diff --git a/WordPress/Classes/ViewRelated/Notifications/Tools/IntrinsicTableView.swift b/WordPress/Classes/ViewRelated/Notifications/Tools/IntrinsicTableView.swift index f87e48c892f3..c223906861a6 100644 --- a/WordPress/Classes/ViewRelated/Notifications/Tools/IntrinsicTableView.swift +++ b/WordPress/Classes/ViewRelated/Notifications/Tools/IntrinsicTableView.swift @@ -9,7 +9,7 @@ import Foundation /// - https://developer.apple.com/library/ios/technotes/tn2154/_index.html#//apple_ref/doc/uid/DTS40013309 /// - http://stackoverflow.com/questions/17334478/uitableview-within-uiscrollview-using-autolayout /// -class IntrinsicTableView: UITableView { +@objc class IntrinsicTableView: UITableView { override var contentSize: CGSize { didSet { self.invalidateIntrinsicContentSize() From 2eb9c0bbc893f50ca1d8e5be8b82ff2f8640e99b Mon Sep 17 00:00:00 2001 From: Momo Ozawa Date: Wed, 26 Jan 2022 16:05:18 +0000 Subject: [PATCH 085/114] Refactor: disable scroll for Blog Details table view The tableview scroll needs to be disabled so it doesn't conflict with the scrollview in MySiteViewController. --- .../ViewRelated/Blog/Blog Details/BlogDetailsViewController.m | 1 + 1 file changed, 1 insertion(+) diff --git a/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController.m b/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController.m index 8a35458fcd5d..7563cb6cfcea 100644 --- a/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController.m +++ b/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController.m @@ -327,6 +327,7 @@ - (void)viewDidLoad [super viewDidLoad]; _tableView = [[IntrinsicTableView alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped]; + self.tableView.scrollEnabled = false; self.tableView.delegate = self; self.tableView.dataSource = self; self.tableView.translatesAutoresizingMaskIntoConstraints = false; From 033bb5332c653649ee9783a9b305c62eeee1337e Mon Sep 17 00:00:00 2001 From: Momo Ozawa Date: Wed, 26 Jan 2022 16:13:00 +0000 Subject: [PATCH 086/114] Refactor: use intrinsic collection view for BlogDashboardVC Using IntrinsicCollectionView allows us to add BlogDashboardVC as a child view controller within a scroll view --- .../BlogDashboardViewController.swift | 7 +++++-- .../Views/IntrinsicCollectionView.swift | 17 +++++++++++++++++ WordPress/WordPress.xcodeproj/project.pbxproj | 6 ++++++ 3 files changed, 28 insertions(+), 2 deletions(-) create mode 100644 WordPress/Classes/ViewRelated/Views/IntrinsicCollectionView.swift diff --git a/WordPress/Classes/ViewRelated/Blog/Blog Dashboard/BlogDashboardViewController.swift b/WordPress/Classes/ViewRelated/Blog/Blog Dashboard/BlogDashboardViewController.swift index 158a6c59c801..ea2e0f76baff 100644 --- a/WordPress/Classes/ViewRelated/Blog/Blog Dashboard/BlogDashboardViewController.swift +++ b/WordPress/Classes/ViewRelated/Blog/Blog Dashboard/BlogDashboardViewController.swift @@ -17,8 +17,8 @@ final class BlogDashboardViewController: UIViewController { typealias Snapshot = NSDiffableDataSourceSnapshot typealias QuickLinksHostCell = HostCollectionViewCell - private lazy var collectionView: UICollectionView = { - let collectionView = UICollectionView(frame: .zero, collectionViewLayout: createLayout()) + private lazy var collectionView: IntrinsicCollectionView = { + let collectionView = IntrinsicCollectionView(frame: .zero, collectionViewLayout: createLayout()) collectionView.translatesAutoresizingMaskIntoConstraints = false return collectionView }() @@ -50,6 +50,9 @@ final class BlogDashboardViewController: UIViewController { setupCollectionView() applySnapshotForInitialData() addHeightObservers() + + // Force the view to update its layout immediately, so the content size is calculated correctly + collectionView.layoutIfNeeded() } private func setupCollectionView() { diff --git a/WordPress/Classes/ViewRelated/Views/IntrinsicCollectionView.swift b/WordPress/Classes/ViewRelated/Views/IntrinsicCollectionView.swift new file mode 100644 index 000000000000..c7fd24315df0 --- /dev/null +++ b/WordPress/Classes/ViewRelated/Views/IntrinsicCollectionView.swift @@ -0,0 +1,17 @@ +import UIKit + +/// This UICollectionView subclass allows us to use UIStackView along with Collection Views. Intrinsic Content Size +/// will be automatically calculated, based on the Collection View's Content Size. +/// +@objc class IntrinsicCollectionView: UICollectionView { + override func layoutSubviews() { + super.layoutSubviews() + if bounds.size != intrinsicContentSize { + invalidateIntrinsicContentSize() + } + } + + override var intrinsicContentSize: CGSize { + return collectionViewLayout.collectionViewContentSize + } +} diff --git a/WordPress/WordPress.xcodeproj/project.pbxproj b/WordPress/WordPress.xcodeproj/project.pbxproj index 59fd9802a270..d610652efb8f 100644 --- a/WordPress/WordPress.xcodeproj/project.pbxproj +++ b/WordPress/WordPress.xcodeproj/project.pbxproj @@ -2719,6 +2719,8 @@ FA1A544025A6E3080033967D /* RestoreWarningView.xib in Resources */ = {isa = PBXBuildFile; fileRef = FA1A543F25A6E3080033967D /* RestoreWarningView.xib */; }; FA1A55EF25A6F0740033967D /* RestoreStatusView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA1A55EE25A6F0740033967D /* RestoreStatusView.swift */; }; FA1A55FF25A6F07F0033967D /* RestoreStatusView.xib in Resources */ = {isa = PBXBuildFile; fileRef = FA1A55FE25A6F07F0033967D /* RestoreStatusView.xib */; }; + FA1A5FD427A1A920001A38D8 /* IntrinsicCollectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA1A5FD327A1A91F001A38D8 /* IntrinsicCollectionView.swift */; }; + FA1A5FD527A1A920001A38D8 /* IntrinsicCollectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA1A5FD327A1A91F001A38D8 /* IntrinsicCollectionView.swift */; }; FA1ACAA21BC6E45D00DDDCE2 /* WPStyleGuide+Themes.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA1ACAA11BC6E45D00DDDCE2 /* WPStyleGuide+Themes.swift */; }; FA1CEAC225CA9C2A005E7038 /* RestoreStatusFailedView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA1CEAC125CA9C2A005E7038 /* RestoreStatusFailedView.swift */; }; FA1CEAD425CA9C40005E7038 /* RestoreStatusFailedView.xib in Resources */ = {isa = PBXBuildFile; fileRef = FA1CEAD325CA9C40005E7038 /* RestoreStatusFailedView.xib */; }; @@ -7472,6 +7474,7 @@ FA1A543F25A6E3080033967D /* RestoreWarningView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = RestoreWarningView.xib; sourceTree = ""; }; FA1A55EE25A6F0740033967D /* RestoreStatusView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RestoreStatusView.swift; sourceTree = ""; }; FA1A55FE25A6F07F0033967D /* RestoreStatusView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = RestoreStatusView.xib; sourceTree = ""; }; + FA1A5FD327A1A91F001A38D8 /* IntrinsicCollectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IntrinsicCollectionView.swift; sourceTree = ""; }; FA1ACAA11BC6E45D00DDDCE2 /* WPStyleGuide+Themes.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "WPStyleGuide+Themes.swift"; sourceTree = ""; }; FA1CEAC125CA9C2A005E7038 /* RestoreStatusFailedView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RestoreStatusFailedView.swift; sourceTree = ""; }; FA1CEAD325CA9C40005E7038 /* RestoreStatusFailedView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = RestoreStatusFailedView.xib; sourceTree = ""; }; @@ -7948,6 +7951,7 @@ 32F2565F25012D3F006B8BC4 /* LinearGradientView.swift */, F18CB8952642E58700B90794 /* FixedSizeImageView.swift */, FADFBD25265F580500039C41 /* MultilineButton.swift */, + FA1A5FD327A1A91F001A38D8 /* IntrinsicCollectionView.swift */, ); path = Views; sourceTree = ""; @@ -17736,6 +17740,7 @@ 9A1A67A622B2AD4E00FF8422 /* CountriesMap.swift in Sources */, 439F4F3A219B715300F8D0C7 /* RevisionsNavigationController.swift in Sources */, 40F46B6A22121BA800A2143B /* AnnualAndMostPopularTimeStatsRecordValue+CoreDataClass.swift in Sources */, + FA1A5FD427A1A920001A38D8 /* IntrinsicCollectionView.swift in Sources */, 17D5C3F71FFCF2D800EB70FF /* MediaProgressCoordinatorNoticeViewModel.swift in Sources */, 46F584822624DCC80010A723 /* BlockEditorSettingsService.swift in Sources */, 984B139221F66AC60004B6A2 /* SiteStatsPeriodViewModel.swift in Sources */, @@ -20685,6 +20690,7 @@ FABB25A02602FC2C00C8785C /* UINavigationBar+Appearance.swift in Sources */, FABB25A12602FC2C00C8785C /* QuickStartChecklistViewController.swift in Sources */, FABB25A22602FC2C00C8785C /* MenuItemsViewController.m in Sources */, + FA1A5FD527A1A920001A38D8 /* IntrinsicCollectionView.swift in Sources */, FABB25A32602FC2C00C8785C /* ReachabilityUtils+OnlineActions.swift in Sources */, FABB25A42602FC2C00C8785C /* TableViewKeyboardObserver.swift in Sources */, FABB25A52602FC2C00C8785C /* BlogToJetpackAccount.m in Sources */, From 9043f5f463ca0a0839a43ff1e0d975c0e90e666b Mon Sep 17 00:00:00 2001 From: Momo Ozawa Date: Wed, 26 Jan 2022 16:14:27 +0000 Subject: [PATCH 087/114] Refactor: disable scroll for Blog Dashboard collection view The collectionview scroll needs to be disabled so it doesn't conflict with the scrollview in MySiteViewController. --- .../Blog/Blog Dashboard/BlogDashboardViewController.swift | 1 + 1 file changed, 1 insertion(+) diff --git a/WordPress/Classes/ViewRelated/Blog/Blog Dashboard/BlogDashboardViewController.swift b/WordPress/Classes/ViewRelated/Blog/Blog Dashboard/BlogDashboardViewController.swift index ea2e0f76baff..d84c3ddd9150 100644 --- a/WordPress/Classes/ViewRelated/Blog/Blog Dashboard/BlogDashboardViewController.swift +++ b/WordPress/Classes/ViewRelated/Blog/Blog Dashboard/BlogDashboardViewController.swift @@ -56,6 +56,7 @@ final class BlogDashboardViewController: UIViewController { } private func setupCollectionView() { + collectionView.isScrollEnabled = false collectionView.backgroundColor = .listBackground collectionView.register(QuickLinksHostCell.self, forCellWithReuseIdentifier: QuickLinksHostCell.defaultReuseID) collectionView.register(DashboardPostsCardCell.self, forCellWithReuseIdentifier: DashboardPostsCardCell.defaultReuseID) From 429076adb9fd61a9485517486961754a597179b6 Mon Sep 17 00:00:00 2001 From: Momo Ozawa Date: Tue, 25 Jan 2022 15:16:05 +0000 Subject: [PATCH 088/114] Refactor: remove container view Add child view controller directy to the stackview as an arranged subview. --- .../Blog/My Site/MySiteViewController.swift | 50 ++++++++++--------- 1 file changed, 26 insertions(+), 24 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.swift b/WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.swift index 5c001acaf1cc..a9095a9aad74 100644 --- a/WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.swift +++ b/WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.swift @@ -17,6 +17,12 @@ class MySiteViewController: UIViewController, NoResultsViewHost { } } + private lazy var scrollView: UIScrollView = { + let scrollView = UIScrollView() + scrollView.translatesAutoresizingMaskIntoConstraints = false + return scrollView + }() + private lazy var stackView: UIStackView = { let stackView = UIStackView() stackView.translatesAutoresizingMaskIntoConstraints = false @@ -40,12 +46,6 @@ class MySiteViewController: UIViewController, NoResultsViewHost { return segmentedControl }() - private lazy var containerView: UIView = { - let view = UIView() - view.translatesAutoresizingMaskIntoConstraints = false - return view - }() - private let meScenePresenter: ScenePresenter private let blogService: BlogService @@ -105,6 +105,7 @@ class MySiteViewController: UIViewController, NoResultsViewHost { // MARK: - View Lifecycle override func viewDidLoad() { + view.backgroundColor = .listBackground setupConstraints() setupNavigationItem() setupSegmentedControl() @@ -154,28 +155,32 @@ class MySiteViewController: UIViewController, NoResultsViewHost { /// If the My Site Dashboard feature flag is enabled, then this method builds a layout with the following /// view hierarchy: /// - /// - Stack view - /// - Segmented control container view - /// - Segmented control - /// - Container view (for a child vc) + /// - Scroll view + /// - Stack view + /// - Segmented control container view + /// - Segmented control + /// - Child view controller /// /// Otherwise, if the My Site Dashboard feature flag is disabled, this method does nothing and the - /// child vc get added directly to the root view of the view controller in showBlogDetails. + /// child vc is added directly to the root view of the view controller in showBlogDetails. /// private func setupConstraints() { guard FeatureFlag.mySiteDashboard.enabled else { return } - view.addSubview(stackView) + view.addSubview(scrollView) + scrollView.addSubview(stackView) + scrollView.pinSubviewToAllEdges(stackView) segmentedControlContainerView.addSubview(segmentedControl) - stackView.addArrangedSubviews([segmentedControlContainerView, containerView]) + stackView.addArrangedSubviews([segmentedControlContainerView]) NSLayoutConstraint.activate([ - stackView.leadingAnchor.constraint(equalTo: view.leadingAnchor), - stackView.trailingAnchor.constraint(equalTo: view.trailingAnchor), - stackView.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor), - stackView.bottomAnchor.constraint(equalTo: view.safeAreaLayoutGuide.bottomAnchor), + scrollView.leadingAnchor.constraint(equalTo: view.leadingAnchor), + scrollView.trailingAnchor.constraint(equalTo: view.trailingAnchor), + scrollView.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor), + scrollView.bottomAnchor.constraint(equalTo: view.safeAreaLayoutGuide.bottomAnchor), + stackView.widthAnchor.constraint(equalTo: view.widthAnchor), segmentedControl.centerXAnchor.constraint(equalTo: segmentedControlContainerView.centerXAnchor), segmentedControl.centerYAnchor.constraint(equalTo: segmentedControlContainerView.centerYAnchor), segmentedControl.topAnchor.constraint(equalTo: segmentedControlContainerView.topAnchor, constant: 24) @@ -289,19 +294,16 @@ class MySiteViewController: UIViewController, NoResultsViewHost { } remove(blogDetailVC) blogDashboardViewController.blog = blog - embedChildInContainerView(blogDashboardViewController) + embedChildInStackView(blogDashboardViewController) } } // MARK: - Child VC logic - private func embedChildInContainerView(_ child: UIViewController) { + private func embedChildInStackView(_ child: UIViewController) { addChild(child) - containerView.addSubview(child.view) + stackView.addArrangedSubview(child.view) child.didMove(toParent: self) - - child.view.translatesAutoresizingMaskIntoConstraints = false - containerView.pinSubviewToAllEdges(child.view) } // MARK: - No Sites UI logic @@ -482,7 +484,7 @@ class MySiteViewController: UIViewController, NoResultsViewHost { addMeButtonToNavigationBar(email: blog.account?.email, meScenePresenter: meScenePresenter) if FeatureFlag.mySiteDashboard.enabled { - embedChildInContainerView(blogDetailsViewController) + embedChildInStackView(blogDetailsViewController) } else { add(blogDetailsViewController) blogDetailsViewController.view.translatesAutoresizingMaskIntoConstraints = false From 40c50088a68bdfc3193bf7d86eb7a1ec3023df9e Mon Sep 17 00:00:00 2001 From: Leandro Alonso Date: Wed, 26 Jan 2022 13:37:28 -0300 Subject: [PATCH 089/114] docs: add new table view visual into release-notes --- RELEASE-NOTES.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt index c18c0a818bda..481a3c8ee22b 100644 --- a/RELEASE-NOTES.txt +++ b/RELEASE-NOTES.txt @@ -1,5 +1,6 @@ 19.2 ----- +* [**] Some of the screens of the app has a new, fresh and more modern visual, including the initial one: My Site. [#17812] 19.1 From 9daef658507ea57137371864dd5c688ffc19f9dc Mon Sep 17 00:00:00 2001 From: Momo Ozawa Date: Wed, 26 Jan 2022 16:46:10 +0000 Subject: [PATCH 090/114] Update: style segmented control --- .../Blog/My Site/MySiteViewController.swift | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.swift b/WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.swift index a9095a9aad74..75f2b91e16d7 100644 --- a/WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.swift +++ b/WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.swift @@ -36,7 +36,6 @@ class MySiteViewController: UIViewController, NoResultsViewHost { private lazy var segmentedControlContainerView: UIView = { let view = UIView() view.translatesAutoresizingMaskIntoConstraints = false - view.backgroundColor = .basicBackground return view }() @@ -181,9 +180,12 @@ class MySiteViewController: UIViewController, NoResultsViewHost { scrollView.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor), scrollView.bottomAnchor.constraint(equalTo: view.safeAreaLayoutGuide.bottomAnchor), stackView.widthAnchor.constraint(equalTo: view.widthAnchor), + segmentedControl.leadingAnchor.constraint(equalTo: segmentedControlContainerView.leadingAnchor, + constant: Constants.segmentedControlXOffset), segmentedControl.centerXAnchor.constraint(equalTo: segmentedControlContainerView.centerXAnchor), - segmentedControl.centerYAnchor.constraint(equalTo: segmentedControlContainerView.centerYAnchor), - segmentedControl.topAnchor.constraint(equalTo: segmentedControlContainerView.topAnchor, constant: 24) + segmentedControl.topAnchor.constraint(equalTo: segmentedControlContainerView.topAnchor, + constant: Constants.segmentedControlYOffset), + segmentedControl.bottomAnchor.constraint(equalTo: segmentedControlContainerView.bottomAnchor) ]) } @@ -630,6 +632,11 @@ class MySiteViewController: UIViewController, NoResultsViewHost { self.blog = blog } + + private enum Constants { + static let segmentedControlXOffset: CGFloat = 16 + static let segmentedControlYOffset: CGFloat = 24 + } } extension MySiteViewController: WPSplitViewControllerDetailProvider { From 45e6b3589693be1513e09f78f0fc6ee60a18610d Mon Sep 17 00:00:00 2001 From: Momo Ozawa Date: Wed, 26 Jan 2022 16:51:29 +0000 Subject: [PATCH 091/114] Refactor: add feature flag check for table view initialization This ensures that we only use IntrinsicTableView if the My Site Dashboard feature flag is enabled. --- .../Blog/Blog Details/BlogDetailsViewController.h | 2 +- .../Blog/Blog Details/BlogDetailsViewController.m | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController.h b/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController.h index c3586de69886..24b6cbcb2249 100644 --- a/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController.h +++ b/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController.h @@ -137,7 +137,7 @@ typedef NS_ENUM(NSUInteger, BlogDetailsNavigationSource) { @property (nonatomic, strong, nonnull) Blog * blog; @property (nonatomic, strong) id _Nonnull meScenePresenter; @property (nonatomic, strong, readonly) CreateButtonCoordinator * _Nullable createButtonCoordinator; -@property (nonatomic, strong, readwrite) IntrinsicTableView * _Nonnull tableView; +@property (nonatomic, strong, readwrite) UITableView * _Nonnull tableView; @property (nonatomic, strong, readonly) BlogDetailHeaderView * _Nonnull headerView; @property (nonatomic) BOOL shouldScrollToViewSite; diff --git a/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController.m b/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController.m index 7563cb6cfcea..ba1ba9c09103 100644 --- a/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController.m +++ b/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController.m @@ -326,8 +326,13 @@ - (void)viewDidLoad { [super viewDidLoad]; - _tableView = [[IntrinsicTableView alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped]; - self.tableView.scrollEnabled = false; + if ([Feature enabled:FeatureFlagMySiteDashboard]) { + _tableView = [[IntrinsicTableView alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped]; + self.tableView.scrollEnabled = false; + } else { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped]; + } + self.tableView.delegate = self; self.tableView.dataSource = self; self.tableView.translatesAutoresizingMaskIntoConstraints = false; From 7bb517a3e1f147283cf4d06181636e4fa58834be Mon Sep 17 00:00:00 2001 From: Momo Ozawa Date: Wed, 26 Jan 2022 19:19:51 +0000 Subject: [PATCH 092/114] Update: offset for segmented control --- .../Classes/ViewRelated/Blog/My Site/MySiteViewController.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.swift b/WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.swift index c30ea29d0426..b87247bc4dbf 100644 --- a/WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.swift +++ b/WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.swift @@ -656,7 +656,7 @@ class MySiteViewController: UIViewController, NoResultsViewHost { } private enum Constants { - static let segmentedControlXOffset: CGFloat = 16 + static let segmentedControlXOffset: CGFloat = 20 static let segmentedControlYOffset: CGFloat = 24 } } From 2cd91ec06a3879e5eba7d2dc3cadb2482894009a Mon Sep 17 00:00:00 2001 From: James Frost Date: Wed, 26 Jan 2022 21:55:34 +0000 Subject: [PATCH 093/114] Flip media picker permissions feature flag --- WordPress/Classes/Utility/BuildInformation/FeatureFlag.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WordPress/Classes/Utility/BuildInformation/FeatureFlag.swift b/WordPress/Classes/Utility/BuildInformation/FeatureFlag.swift index fa8dcffb7900..106f5275d3da 100644 --- a/WordPress/Classes/Utility/BuildInformation/FeatureFlag.swift +++ b/WordPress/Classes/Utility/BuildInformation/FeatureFlag.swift @@ -71,7 +71,7 @@ enum FeatureFlag: Int, CaseIterable, OverrideableFlag { case .followConversationPostDetails: return true case .mediaPickerPermissionsNotice: - return BuildConfiguration.current == .localDeveloper + return true } } From 50af3966f27ff926f1de6266c8fcb653a8a46ca4 Mon Sep 17 00:00:00 2001 From: Leandro Alonso Date: Wed, 26 Jan 2022 19:15:16 -0300 Subject: [PATCH 094/114] add: method to call pull to refresh from outside blog detail --- .../Blog/Blog Details/BlogDetailsViewController.h | 1 + .../Blog/Blog Details/BlogDetailsViewController.m | 12 +++++++----- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController.h b/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController.h index db0fe7ba6e61..a112263542a8 100644 --- a/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController.h +++ b/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController.h @@ -160,4 +160,5 @@ typedef NS_ENUM(NSUInteger, BlogDetailsNavigationSource) { - (void)uploadDroppedSiteIcon:(nonnull UIImage *)image onCompletion:(nullable void(^)(void))completion; - (void)updateTableViewAndHeader; - (void)preloadMetadata; +- (void)pulledToRefreshWith:(nonnull UIRefreshControl *)refreshControl onCompletion:(nullable void(^)(void))completion; @end diff --git a/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController.m b/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController.m index ed70d0727d75..e79b468734df 100644 --- a/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController.m +++ b/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController.m @@ -2034,18 +2034,20 @@ - (void)updateTableViewAndHeader:(void(^)(void))onComplete } #pragma mark - Pull To Refresh - - (void)pulledToRefresh { - __weak __typeof(self) weakSelf = self; - + [self pulledToRefreshWith:self.tableView.refreshControl onCompletion:^{}]; +} + +- (void)pulledToRefreshWith:(UIRefreshControl *)refreshControl onCompletion:( void(^)(void))completion { + [self updateTableViewAndHeader: ^{ // WORKAROUND: if we don't dispatch this asynchronously, the refresh end animation is clunky. // To recognize if we can remove this, simply remove the dispatch_async call and test pulling // down to refresh the site. dispatch_async(dispatch_get_main_queue(), ^(void){ - __strong __typeof(weakSelf) strongSelf = weakSelf; + [refreshControl endRefreshing]; - [strongSelf.tableView.refreshControl endRefreshing]; + completion(); }); }]; } From 9cb23b4cb9083ee137ad0ee306642576dd552533 Mon Sep 17 00:00:00 2001 From: Leandro Alonso Date: Wed, 26 Jan 2022 19:17:21 -0300 Subject: [PATCH 095/114] add: pull to refresh to MySiteViewController --- .../Blog/My Site/MySiteViewController.swift | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.swift b/WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.swift index b87247bc4dbf..19a2f424e451 100644 --- a/WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.swift +++ b/WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.swift @@ -20,6 +20,7 @@ class MySiteViewController: UIViewController, NoResultsViewHost { private lazy var scrollView: UIScrollView = { let scrollView = UIScrollView() scrollView.translatesAutoresizingMaskIntoConstraints = false + scrollView.refreshControl = refreshControl return scrollView }() @@ -45,6 +46,12 @@ class MySiteViewController: UIViewController, NoResultsViewHost { return segmentedControl }() + private lazy var refreshControl: UIRefreshControl = { + let refreshControl = UIRefreshControl() + refreshControl.addTarget(self, action: #selector(pulledToRefresh), for: .valueChanged) + return refreshControl + }() + private let meScenePresenter: ScenePresenter private let blogService: BlogService @@ -300,6 +307,13 @@ class MySiteViewController: UIViewController, NoResultsViewHost { } } + @objc + private func pulledToRefresh() { + blogDetailsViewController?.pulledToRefresh(with: refreshControl) { + self.sitePickerViewController?.blogDetailHeaderView.blog = self.blog + } + } + // MARK: - Segmented Control @objc private func segmentedControlValueChanged(_ sender: Any) { From ca8cb90ceefd66c7f80e7b915216f26abb648a8e Mon Sep 17 00:00:00 2001 From: Leandro Alonso Date: Wed, 26 Jan 2022 19:17:38 -0300 Subject: [PATCH 096/114] fix: constraint to avoid the refresh control from flashing --- .../Classes/ViewRelated/Blog/My Site/MySiteViewController.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.swift b/WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.swift index 19a2f424e451..279455612338 100644 --- a/WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.swift +++ b/WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.swift @@ -198,7 +198,7 @@ class MySiteViewController: UIViewController, NoResultsViewHost { NSLayoutConstraint.activate([ scrollView.leadingAnchor.constraint(equalTo: view.leadingAnchor), scrollView.trailingAnchor.constraint(equalTo: view.trailingAnchor), - scrollView.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor), + scrollView.topAnchor.constraint(equalTo: view.topAnchor), scrollView.bottomAnchor.constraint(equalTo: view.safeAreaLayoutGuide.bottomAnchor), stackView.widthAnchor.constraint(equalTo: view.widthAnchor), segmentedControl.leadingAnchor.constraint(equalTo: segmentedControlContainerView.leadingAnchor, From ef45110e9d41b95250828a6019f2e106145798dd Mon Sep 17 00:00:00 2001 From: Leandro Alonso Date: Wed, 26 Jan 2022 19:24:46 -0300 Subject: [PATCH 097/114] fix: use weak to avoid reference cycle --- .../ViewRelated/Blog/My Site/MySiteViewController.swift | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.swift b/WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.swift index 279455612338..ed24a603560a 100644 --- a/WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.swift +++ b/WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.swift @@ -309,7 +309,11 @@ class MySiteViewController: UIViewController, NoResultsViewHost { @objc private func pulledToRefresh() { - blogDetailsViewController?.pulledToRefresh(with: refreshControl) { + blogDetailsViewController?.pulledToRefresh(with: refreshControl) { [weak self] in + guard let self = self else { + return + } + self.sitePickerViewController?.blogDetailHeaderView.blog = self.blog } } From 8b776f75e9f3c8f71b419ea9c8641cc2bf4d92ea Mon Sep 17 00:00:00 2001 From: Leandro Alonso Date: Wed, 26 Jan 2022 19:25:26 -0300 Subject: [PATCH 098/114] fix: hound white space --- .../Classes/ViewRelated/Blog/My Site/MySiteViewController.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.swift b/WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.swift index ed24a603560a..c46413fbd566 100644 --- a/WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.swift +++ b/WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.swift @@ -313,7 +313,7 @@ class MySiteViewController: UIViewController, NoResultsViewHost { guard let self = self else { return } - + self.sitePickerViewController?.blogDetailHeaderView.blog = self.blog } } From 12ccabbe95b3aa68297219c0e7be9ee46659f613 Mon Sep 17 00:00:00 2001 From: James Frost Date: Thu, 27 Jan 2022 11:10:02 +0000 Subject: [PATCH 099/114] Remove an unused return statement --- WordPress/Classes/Utility/BuildInformation/FeatureFlag.swift | 1 - 1 file changed, 1 deletion(-) diff --git a/WordPress/Classes/Utility/BuildInformation/FeatureFlag.swift b/WordPress/Classes/Utility/BuildInformation/FeatureFlag.swift index fa8dcffb7900..fbe36bc5b095 100644 --- a/WordPress/Classes/Utility/BuildInformation/FeatureFlag.swift +++ b/WordPress/Classes/Utility/BuildInformation/FeatureFlag.swift @@ -48,7 +48,6 @@ enum FeatureFlag: Int, CaseIterable, OverrideableFlag { return true case .siteIconCreator: return BuildConfiguration.current != .appStore - return true case .weeklyRoundup: return true case .weeklyRoundupStaticNotification: From 5f39048e409943bf0479d81fbeeaa15d134e2886 Mon Sep 17 00:00:00 2001 From: Carlos Garcia Date: Thu, 27 Jan 2022 13:14:36 +0100 Subject: [PATCH 100/114] Remove Android-specific block editor entries --- RELEASE-NOTES.txt | 3 --- 1 file changed, 3 deletions(-) diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt index c18c0a818bda..830af194223f 100644 --- a/RELEASE-NOTES.txt +++ b/RELEASE-NOTES.txt @@ -16,11 +16,8 @@ * [**] Block editor: Fix content justification attribute in Buttons block [https://github.com/wordpress-mobile/gutenberg-mobile/pull/4451] * [*] Block editor: Hide help button from Unsupported Block Editor. [https://github.com/wordpress-mobile/gutenberg-mobile/pull/4352] * [*] Block editor: Add contrast checker to text-based blocks [https://github.com/wordpress-mobile/gutenberg-mobile/pull/4357] -* [*] Block editor: Fix missing Featured Image translations [https://github.com/wordpress-mobile/gutenberg-mobile/pull/4464] * [*] Block editor: Fix missing translations of color settings [https://github.com/wordpress-mobile/gutenberg-mobile/pull/4479] -* [*] Block editor: Fix cut-off setting labels by properly wrapping the text [https://github.com/wordpress-mobile/gutenberg-mobile/pull/4475] * [*] Block editor: Highlight text: fix applying formatting for non-selected text [https://github.com/wordpress-mobile/gutenberg-mobile/pull/4471] -* [**] Block editor: Fix Android handling of Hebrew and Indonesian translations [https://github.com/wordpress-mobile/gutenberg-mobile/pull/4397] * [***] Self-hosted sites: Fixed a crash when saving media and no Internet connection was available. [#17759] * [*] Publicize: Fixed an issue where a successful login was not automatically detected when connecting a Facebook account to Publicize. [#17803] From 66afa5be25907e5d1a252fc6080284007809e961 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Thu, 27 Jan 2022 13:29:19 +0100 Subject: [PATCH 101/114] Update translations --- WordPress/Resources/nl.lproj/Localizable.strings | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/WordPress/Resources/nl.lproj/Localizable.strings b/WordPress/Resources/nl.lproj/Localizable.strings index 869701c990f5..b97d3c24dd65 100644 --- a/WordPress/Resources/nl.lproj/Localizable.strings +++ b/WordPress/Resources/nl.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2022-01-25 18:10:49+0000 */ +/* Translation-Revision-Date: 2022-01-27 07:40:32+0000 */ /* Plural-Forms: nplurals=2; plural=n != 1; */ /* Generator: GlotPress/3.0.0-alpha.2 */ /* Language: nl */ @@ -2751,7 +2751,7 @@ translators: Block name. %s: The localized block name */ "Enter different words above and we'll look for an address that matches it." = "Voer hierboven andere woorden in, zodat wij op zoek kunnen gaan naar een adres dat overeenkomt."; /* Accessibility hint for edit button to enable multi selection mode in the user's media library */ -"Enter edit mode to enable multi select to delete" = "Enter edit mode to enable multi select to delete"; +"Enter edit mode to enable multi select to delete" = "Bewerken openen om gelijktijdig meerdere te verwijderen"; /* (placeholder) Help enter WordPress password Placeholder of a field to type a password to protect the post. */ @@ -7225,10 +7225,10 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ "The quick start tour will guide you through building a basic site. Are you sure you want to skip? " = "In de snelle rondleiding wordt getoond hoe je een basissite bouwt. Weet je zeker dat je wilt overslaan? "; /* A failure reason for when the request couldn't be serialized. */ -"The serialization of the request failed." = "The serialization of the request failed."; +"The serialization of the request failed." = "De serialisatie van het verzoek is mislukt."; /* A failure reason for when the response couldn't be serialized. */ -"The serialization of the response failed." = "The serialization of the response failed."; +"The serialization of the response failed." = "De serialisatie van de reactie is mislukt."; /* No comment provided by engineer. */ "The server returned an empty response. This usually means you need to increase the memory limit for your site." = "De server heeft een lege respons teruggestuurd. Dat betekent meestal dat je de geheugenlimiet voor je site moet verhogen."; From d0493094c3372b3cbeaf0590f8dfc42665be60bf Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Thu, 27 Jan 2022 13:29:38 +0100 Subject: [PATCH 102/114] Bump version number --- config/Version.internal.xcconfig | 2 +- config/Version.public.xcconfig | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/config/Version.internal.xcconfig b/config/Version.internal.xcconfig index 1aadbf3c1740..35695bae0388 100644 --- a/config/Version.internal.xcconfig +++ b/config/Version.internal.xcconfig @@ -1,4 +1,4 @@ VERSION_SHORT=19.1 // Internal long version example: VERSION_LONG=9.9.0.20180423 -VERSION_LONG=19.1.0.20220126 +VERSION_LONG=19.1.0.20220127 diff --git a/config/Version.public.xcconfig b/config/Version.public.xcconfig index 5d30385da570..5107e167c641 100644 --- a/config/Version.public.xcconfig +++ b/config/Version.public.xcconfig @@ -1,4 +1,4 @@ VERSION_SHORT=19.1 // Public long version example: VERSION_LONG=9.9.0.0 -VERSION_LONG=19.1.0.1 +VERSION_LONG=19.1.0.2 From 2852603ae6866de5d605e74fca4c0463850c4039 Mon Sep 17 00:00:00 2001 From: Leandro Alonso Date: Thu, 27 Jan 2022 09:39:33 -0300 Subject: [PATCH 103/114] refactor: move constant to an enum and set some props to private --- .../Blog/QuickStartPromptViewController.swift | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.swift b/WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.swift index 9147a93b05c9..33ac2a5d357f 100644 --- a/WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.swift +++ b/WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.swift @@ -19,8 +19,8 @@ final class QuickStartPromptViewController: UIViewController { /// Constraints @IBOutlet private(set) weak var scrollViewTopVerticalConstraint: NSLayoutConstraint! - @IBOutlet weak var scrollViewLeadingConstraint: NSLayoutConstraint! - @IBOutlet weak var scrollViewTrailingConstraint: NSLayoutConstraint! + @IBOutlet private weak var scrollViewLeadingConstraint: NSLayoutConstraint! + @IBOutlet private weak var scrollViewTrailingConstraint: NSLayoutConstraint! // MARK: - Properties @@ -105,7 +105,7 @@ final class QuickStartPromptViewController: UIViewController { } private func setupScrollViewMargins() { - let margin = view.getHorizontalMargin() + 20.0 + let margin = view.getHorizontalMargin() + Constants.marginPadding scrollViewLeadingConstraint.constant = margin scrollViewTrailingConstraint.constant = margin } @@ -160,4 +160,8 @@ extension QuickStartPromptViewController { static let noThanksButtonTitle = NSLocalizedString("No thanks", comment: "Button title. When tapped, the quick start checklist will not be shown, and the prompt will be dismissed.") } + private enum Constants { + static let marginPadding = 20.0 + } + } From bc3e11b2cf7b07d954b312f9610363dfb1a10977 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Thu, 27 Jan 2022 16:28:00 +0100 Subject: [PATCH 104/114] Track changes from 5f39048e40 in app specific `release_notes.txt` This is more to track the occurrence of the removal during the process than for any practical reason, since Grace, our freelance copy-writer, already updated the editorialized notes to account for this. --- WordPress/Jetpack/Resources/release_notes.txt | 3 --- WordPress/Resources/release_notes.txt | 3 --- 2 files changed, 6 deletions(-) diff --git a/WordPress/Jetpack/Resources/release_notes.txt b/WordPress/Jetpack/Resources/release_notes.txt index 7ca8d2251e5a..415247d521d9 100644 --- a/WordPress/Jetpack/Resources/release_notes.txt +++ b/WordPress/Jetpack/Resources/release_notes.txt @@ -7,10 +7,7 @@ * [**] Block editor: Fix content justification attribute in Buttons block [https://github.com/wordpress-mobile/gutenberg-mobile/pull/4451] * [*] Block editor: Hide help button from Unsupported Block Editor. [https://github.com/wordpress-mobile/gutenberg-mobile/pull/4352] * [*] Block editor: Add contrast checker to text-based blocks [https://github.com/wordpress-mobile/gutenberg-mobile/pull/4357] -* [*] Block editor: Fix missing Featured Image translations [https://github.com/wordpress-mobile/gutenberg-mobile/pull/4464] * [*] Block editor: Fix missing translations of color settings [https://github.com/wordpress-mobile/gutenberg-mobile/pull/4479] -* [*] Block editor: Fix cut-off setting labels by properly wrapping the text [https://github.com/wordpress-mobile/gutenberg-mobile/pull/4475] * [*] Block editor: Highlight text: fix applying formatting for non-selected text [https://github.com/wordpress-mobile/gutenberg-mobile/pull/4471] -* [**] Block editor: Fix Android handling of Hebrew and Indonesian translations [https://github.com/wordpress-mobile/gutenberg-mobile/pull/4397] * [*] Publicize: Fixed an issue where a successful login was not automatically detected when connecting a Facebook account to Publicize. [#17803] diff --git a/WordPress/Resources/release_notes.txt b/WordPress/Resources/release_notes.txt index 69382d83205a..350197ee8ffd 100644 --- a/WordPress/Resources/release_notes.txt +++ b/WordPress/Resources/release_notes.txt @@ -10,11 +10,8 @@ * [**] Block editor: Fix content justification attribute in Buttons block [https://github.com/wordpress-mobile/gutenberg-mobile/pull/4451] * [*] Block editor: Hide help button from Unsupported Block Editor. [https://github.com/wordpress-mobile/gutenberg-mobile/pull/4352] * [*] Block editor: Add contrast checker to text-based blocks [https://github.com/wordpress-mobile/gutenberg-mobile/pull/4357] -* [*] Block editor: Fix missing Featured Image translations [https://github.com/wordpress-mobile/gutenberg-mobile/pull/4464] * [*] Block editor: Fix missing translations of color settings [https://github.com/wordpress-mobile/gutenberg-mobile/pull/4479] -* [*] Block editor: Fix cut-off setting labels by properly wrapping the text [https://github.com/wordpress-mobile/gutenberg-mobile/pull/4475] * [*] Block editor: Highlight text: fix applying formatting for non-selected text [https://github.com/wordpress-mobile/gutenberg-mobile/pull/4471] -* [**] Block editor: Fix Android handling of Hebrew and Indonesian translations [https://github.com/wordpress-mobile/gutenberg-mobile/pull/4397] * [***] Self-hosted sites: Fixed a crash when saving media and no Internet connection was available. [#17759] * [*] Publicize: Fixed an issue where a successful login was not automatically detected when connecting a Facebook account to Publicize. [#17803] From ab62976a0dcf7210d6f0cba575a060b9800a9227 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Thu, 27 Jan 2022 16:30:51 +0100 Subject: [PATCH 105/114] Add editorialized release notes for version 19.1 --- WordPress/Jetpack/Resources/release_notes.txt | 31 ++++++++------ WordPress/Resources/release_notes.txt | 40 +++++++++++-------- 2 files changed, 43 insertions(+), 28 deletions(-) diff --git a/WordPress/Jetpack/Resources/release_notes.txt b/WordPress/Jetpack/Resources/release_notes.txt index 415247d521d9..e9ddd4d60cae 100644 --- a/WordPress/Jetpack/Resources/release_notes.txt +++ b/WordPress/Jetpack/Resources/release_notes.txt @@ -1,13 +1,20 @@ -* [**] Threaded comments: comments can now be moderated via a drop-down menu on each comment. [#17758] -* [**] Accessibility: VoiceOver and Dynamic Type improvements on Activity Log and Schedule Post calendars [#17756, #17761, #17780] -* [*] Weekly Roundup: Fix a crash which was preventing weekly roundup notifications from appearing [#17765] -* [*] Share Sheet from Photos: Fix an issue where certain filenames would not upload or render in Post [#16773] -* [*] Block editor: Fixed an issue where video thumbnails could show when selecting images, and vice versa. [#17670] -* [**] Media: If a user has only enabled limited device media access, we now show a prompt to allow the user to change their selection. [#17795] -* [**] Block editor: Fix content justification attribute in Buttons block [https://github.com/wordpress-mobile/gutenberg-mobile/pull/4451] -* [*] Block editor: Hide help button from Unsupported Block Editor. [https://github.com/wordpress-mobile/gutenberg-mobile/pull/4352] -* [*] Block editor: Add contrast checker to text-based blocks [https://github.com/wordpress-mobile/gutenberg-mobile/pull/4357] -* [*] Block editor: Fix missing translations of color settings [https://github.com/wordpress-mobile/gutenberg-mobile/pull/4479] -* [*] Block editor: Highlight text: fix applying formatting for non-selected text [https://github.com/wordpress-mobile/gutenberg-mobile/pull/4471] -* [*] Publicize: Fixed an issue where a successful login was not automatically detected when connecting a Facebook account to Publicize. [#17803] +Only gave the app limited access to your media library? No big deal, but we added a prompt to the media picker in case you want to change your settings and allow more access. The prompt even comes in dynamic type for easy reading. +We also made voiceover and dynamic type more accurate on Activity Log and Schedule Post calendars. We’re happy to report that this improves the user experience for folks who need better visual accessibility. + +Speaking of better user experience, you can now moderate individual comments on a post through a drop-down menu. + +We made some useful updates to the Block Editor. + +- We solved an issue where buttons weren’t justifying left, right, or center in the Buttons block. +- We added translation for color settings in Cover blocks. +- Selecting an image will no longer show you a video thumbnail, and vice versa. +- We hid the help button in the bottom right of the unsupported block editor to avoid confusion. +- When you’re using different text and background colors in text blocks, you’ll get a notification if the color combo might make it hard for some people to read. +- We fixed a handful of edge case problems when changing the color of non-selected text. + +We also solved a few smaller issues and crashes. + +- Weekly roundup notifications are now showing up, making it easier to stay on top of the latest news. +- When you connect your Facebook account to Publicize, you’ll now be logged in successfully. +- Images with a copyright symbol in the file name will now upload or appear in the Share Sheet properly. diff --git a/WordPress/Resources/release_notes.txt b/WordPress/Resources/release_notes.txt index 350197ee8ffd..07ef08926736 100644 --- a/WordPress/Resources/release_notes.txt +++ b/WordPress/Resources/release_notes.txt @@ -1,17 +1,25 @@ -* [*] Signup: Fixed bug where username selection screen could be pushed twice. [#17624] -* [**] Threaded comments: comments can now be moderated via a drop-down menu on each comment. [#17758] -* [**] Reader post details Comments snippet: added ability to manage conversation subscription and notifications. [#17749] -* [**] Accessibility: VoiceOver and Dynamic Type improvements on Activity Log and Schedule Post calendars [#17756, #17761, #17780] -* [*] Weekly Roundup: Fix a crash which was preventing weekly roundup notifications from appearing [#17765] -* [*] Self-hosted login: Improved error messages. [#17724] -* [*] Share Sheet from Photos: Fix an issue where certain filenames would not upload or render in Post [#16773] -* [*] Block editor: Fixed an issue where video thumbnails could show when selecting images, and vice versa. [#17670] -* [**] Media: If a user has only enabled limited device media access, we now show a prompt to allow the user to change their selection. [#17795] -* [**] Block editor: Fix content justification attribute in Buttons block [https://github.com/wordpress-mobile/gutenberg-mobile/pull/4451] -* [*] Block editor: Hide help button from Unsupported Block Editor. [https://github.com/wordpress-mobile/gutenberg-mobile/pull/4352] -* [*] Block editor: Add contrast checker to text-based blocks [https://github.com/wordpress-mobile/gutenberg-mobile/pull/4357] -* [*] Block editor: Fix missing translations of color settings [https://github.com/wordpress-mobile/gutenberg-mobile/pull/4479] -* [*] Block editor: Highlight text: fix applying formatting for non-selected text [https://github.com/wordpress-mobile/gutenberg-mobile/pull/4471] -* [***] Self-hosted sites: Fixed a crash when saving media and no Internet connection was available. [#17759] -* [*] Publicize: Fixed an issue where a successful login was not automatically detected when connecting a Facebook account to Publicize. [#17803] +We solved a problem where self-hosted sites would crash while trying to upload media without an Internet connection. Big yikes, but big fix. +Speaking of media, we know you might have given the app limited access to your media library. No big deal, but we added a prompt to the media picker in case you want to change your settings and allow more access. The prompt even comes in dynamic type for easy reading. + +We also made voiceover and dynamic type more accurate on Activity Log and Schedule Post calendars. We’re happy to report that this improves the user experience for folks who need better visual accessibility. + +Big news for Comments: you can now follow a conversation using a button in the Comments header and moderate individual comments through a drop-down menu. + +We made some useful updates to the Block Editor. + +- We solved an issue where buttons weren’t justifying left, right, or center in the Buttons block. +- We added translation for color settings in Cover blocks. +- Selecting an image will no longer show you a video thumbnail, and vice versa. +- We hid the help button in the bottom right of the unsupported block editor to avoid confusion. +- When you’re using different text and background colors in text blocks, you’ll get a notification if the color combo might make it hard for some people to read. +- We fixed a handful of edge case problems when changing the color of non-selected text. + +We also solved a few smaller issues and crashes. + +- Weekly roundup notifications weren’t always being displayed for all users, but now they are. +- The username selection screen is no longer loading twice. +- When you connect your Facebook account to Publicize, you’ll now be logged in successfully. +- Images with a copyright symbol in the file name will now upload or appear in the Share Sheet properly. + +Last but not least, we improved error messages on the login screen for self-hosted websites. From 46431e1594336966461781fc36bb6a884893622a Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Thu, 27 Jan 2022 16:33:32 +0100 Subject: [PATCH 106/114] Update metadata strings --- WordPress/Resources/AppStoreStrings.po | 31 ++++++++++++++++++-------- 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/WordPress/Resources/AppStoreStrings.po b/WordPress/Resources/AppStoreStrings.po index 5515103180a8..ded2431e736f 100644 --- a/WordPress/Resources/AppStoreStrings.po +++ b/WordPress/Resources/AppStoreStrings.po @@ -34,20 +34,33 @@ msgid "" "View the Privacy Notice for California Users at https://automattic.com/privacy/#california-consumer-privacy-act-ccpa.\n" msgstr "" -msgctxt "v19.0-whats-new" +msgctxt "v19.1-whats-new" msgid "" -"What time is it? Our brand-new time zone selection screen knows. Get a suggested time zone based on your device and improve search while you’re at it.\n" +"We solved a problem where self-hosted sites would crash while trying to upload media without an Internet connection. Big yikes, but big fix.\n" "\n" -"If you’re using a free plan, video uploads are now limited to five minutes per file. Don’t worry, that won’t affect any videos you’ve already uploaded to your site.\n" +"Speaking of media, we know you might have given the app limited access to your media library. No big deal, but we added a prompt to the media picker in case you want to change your settings and allow more access. The prompt even comes in dynamic type for easy reading.\n" "\n" -"We’ve also made some changes to the block editor:\n" +"We also made voiceover and dynamic type more accurate on Activity Log and Schedule Post calendars. We’re happy to report that this improves the user experience for folks who need better visual accessibility.\n" "\n" -"- We solved translation issues that caused some user interface elements (like text alignment information and the block editor modal window) to only appear in English.\n" -"- We added language translation for Jetpack and Layout Grid blocks.\n" -"- We fixed a bug that would reset text formatting to default after hitting backspace. Bold on, friends.\n" -"- Multi-line block titles are now center-aligned in the inserter menu.\n" +"Big news for Comments: you can now follow a conversation using a button in the Comments header and moderate individual comments through a drop-down menu.\n" "\n" -"Finally, the “Share WordPress with a friend” row is back where it belongs on the Me screen. Reunited and it feels so good.\n" +"We made some useful updates to the Block Editor.\n" +"\n" +"- We solved an issue where buttons weren’t justifying left, right, or center in the Buttons block.\n" +"- We added translation for color settings in Cover blocks.\n" +"- Selecting an image will no longer show you a video thumbnail, and vice versa.\n" +"- We hid the help button in the bottom right of the unsupported block editor to avoid confusion.\n" +"- When you’re using different text and background colors in text blocks, you’ll get a notification if the color combo might make it hard for some people to read.\n" +"- We fixed a handful of edge case problems when changing the color of non-selected text.\n" +"\n" +"We also solved a few smaller issues and crashes.\n" +"\n" +"- Weekly roundup notifications weren’t always being displayed for all users, but now they are.\n" +"- The username selection screen is no longer loading twice.\n" +"- When you connect your Facebook account to Publicize, you’ll now be logged in successfully.\n" +"- Images with a copyright symbol in the file name will now upload or appear in the Share Sheet properly.\n" +"\n" +"Last but not least, we improved error messages on the login screen for self-hosted websites.\n" msgstr "" #. translators: This is a standard chunk of text used to tell a user what's new with a release when nothing major has changed. From ce961c2466dac2d90cae171ef86c3fe2b0cf8134 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Thu, 27 Jan 2022 16:33:37 +0100 Subject: [PATCH 107/114] Update metadata strings --- .../Jetpack/Resources/AppStoreStrings.po | 26 ++++++++++++------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/WordPress/Jetpack/Resources/AppStoreStrings.po b/WordPress/Jetpack/Resources/AppStoreStrings.po index b8c44a7bea99..5e2101f09446 100644 --- a/WordPress/Jetpack/Resources/AppStoreStrings.po +++ b/WordPress/Jetpack/Resources/AppStoreStrings.po @@ -38,20 +38,28 @@ msgctxt "app_store_keywords" msgid "social,notes,jetpack,writing,geotagging,media,blog,website,blogging,journal" msgstr "" -msgctxt "v19.0-whats-new" +msgctxt "v19.1-whats-new" msgid "" -"What time is it? Our brand-new time zone selection screen knows. Get a suggested time zone based on your device and improve search while you’re at it.\n" +"Only gave the app limited access to your media library? No big deal, but we added a prompt to the media picker in case you want to change your settings and allow more access. The prompt even comes in dynamic type for easy reading.\n" "\n" -"If you’re using a free plan, video uploads are now limited to five minutes per file. Don’t worry, that won’t affect any videos you’ve already uploaded to your site.\n" +"We also made voiceover and dynamic type more accurate on Activity Log and Schedule Post calendars. We’re happy to report that this improves the user experience for folks who need better visual accessibility.\n" "\n" -"We’ve also made some changes to the block editor:\n" +"Speaking of better user experience, you can now moderate individual comments on a post through a drop-down menu.\n" "\n" -"- We solved translation issues that caused some user interface elements (like text alignment information and the block editor modal window) to only appear in English.\n" -"- We added language translation for Jetpack and Layout Grid blocks.\n" -"- We fixed a bug that would reset text formatting to default after hitting backspace. Bold on, friends.\n" -"- Multi-line block titles are now center-aligned in the inserter menu.\n" +"We made some useful updates to the Block Editor.\n" "\n" -"Finally, the “Share WordPress with a friend” row is back where it belongs on the Me screen. Reunited and it feels so good.\n" +"- We solved an issue where buttons weren’t justifying left, right, or center in the Buttons block.\n" +"- We added translation for color settings in Cover blocks.\n" +"- Selecting an image will no longer show you a video thumbnail, and vice versa.\n" +"- We hid the help button in the bottom right of the unsupported block editor to avoid confusion.\n" +"- When you’re using different text and background colors in text blocks, you’ll get a notification if the color combo might make it hard for some people to read.\n" +"- We fixed a handful of edge case problems when changing the color of non-selected text.\n" +"\n" +"We also solved a few smaller issues and crashes.\n" +"\n" +"- Weekly roundup notifications are now showing up, making it easier to stay on top of the latest news.\n" +"- When you connect your Facebook account to Publicize, you’ll now be logged in successfully.\n" +"- Images with a copyright symbol in the file name will now upload or appear in the Share Sheet properly.\n" msgstr "" #. translators: This is a promo message that will be attached on top of the first screenshot in the App Store. From 9486ed878df517d2164efc703143a7393f9f5dc8 Mon Sep 17 00:00:00 2001 From: Stephenie Harris Date: Thu, 27 Jan 2022 10:16:05 -0700 Subject: [PATCH 108/114] Update wpkit pod version. --- Podfile | 2 +- Podfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Podfile b/Podfile index 331564bef1aa..7d40158b7685 100644 --- a/Podfile +++ b/Podfile @@ -47,7 +47,7 @@ def wordpress_ui end def wordpress_kit - pod 'WordPressKit', '~> 4.47.0-beta' + pod 'WordPressKit', '~> 4.47.0-beta.1' # pod 'WordPressKit', :git => 'https://github.com/wordpress-mobile/WordPressKit-iOS.git', :tag => '' # pod 'WordPressKit', :git => 'https://github.com/wordpress-mobile/WordPressKit-iOS.git', :branch => '' # pod 'WordPressKit', :git => 'https://github.com/wordpress-mobile/WordPressKit-iOS.git', :commit => '' diff --git a/Podfile.lock b/Podfile.lock index 8016e6b4e736..dfa994806292 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -567,7 +567,7 @@ DEPENDENCIES: - SVProgressHUD (= 2.2.5) - WordPress-Editor-iOS (~> 1.19.7) - WordPressAuthenticator (~> 1.43.0) - - WordPressKit (~> 4.47.0-beta) + - WordPressKit (~> 4.47.0-beta.1) - WordPressMocks (~> 0.0.15) - WordPressShared (~> 1.17.0) - WordPressUI (~> 1.12.3) @@ -847,6 +847,6 @@ SPEC CHECKSUMS: ZendeskSupportSDK: 3a8e508ab1d9dd22dc038df6c694466414e037ba ZIPFoundation: e27423c004a5a1410c15933407747374e7c6cb6e -PODFILE CHECKSUM: 2cb76b9eca839539bd830474d65514c8a64a8296 +PODFILE CHECKSUM: b10963dbcbffa2add515936104b784dcc64f8ad3 COCOAPODS: 1.11.2 From de0c32a29bda7ba57fbd8c1397d9a34a8d007989 Mon Sep 17 00:00:00 2001 From: Jeremy Massel <1123407+jkmassel@users.noreply.github.com> Date: Thu, 27 Jan 2022 15:17:08 -0700 Subject: [PATCH 109/114] Use consistent build versions --- .../commands/installable-build-jetpack.sh | 2 +- .../commands/installable-build-wordpress.sh | 2 +- fastlane/Fastfile | 38 +++++++++++++------ fastlane/Jetpack-Fastfile | 17 ++------- 4 files changed, 32 insertions(+), 27 deletions(-) diff --git a/.buildkite/commands/installable-build-jetpack.sh b/.buildkite/commands/installable-build-jetpack.sh index 1d654b6ea96c..ad2e8b37dd6c 100644 --- a/.buildkite/commands/installable-build-jetpack.sh +++ b/.buildkite/commands/installable-build-jetpack.sh @@ -14,4 +14,4 @@ echo "--- :closed_lock_with_key: Installing Secrets" bundle exec fastlane run configure_apply echo "--- :hammer_and_wrench: Building" -bundle exec fastlane build_and_upload_jetpack_installable_build build_number:$BUILDKITE_PULL_REQUEST +bundle exec fastlane build_and_upload_jetpack_installable_build \ No newline at end of file diff --git a/.buildkite/commands/installable-build-wordpress.sh b/.buildkite/commands/installable-build-wordpress.sh index 09ae5d4de94b..288c3c70f267 100644 --- a/.buildkite/commands/installable-build-wordpress.sh +++ b/.buildkite/commands/installable-build-wordpress.sh @@ -14,4 +14,4 @@ echo "--- :closed_lock_with_key: Installing Secrets" bundle exec fastlane run configure_apply echo "--- :hammer_and_wrench: Building" -bundle exec fastlane build_and_upload_installable_build build_number:$BUILDKITE_PULL_REQUEST +bundle exec fastlane build_and_upload_installable_build \ No newline at end of file diff --git a/fastlane/Fastfile b/fastlane/Fastfile index 3cd4184b3a6f..1d3e54b4a4ce 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -4,6 +4,7 @@ default_platform(:ios) fastlane_require 'xcodeproj' fastlane_require 'dotenv' fastlane_require 'open-uri' +fastlane_require 'git' UI.user_error!('Please run fastlane via `bundle exec`') unless FastlaneCore::Helper.bundler? @@ -547,17 +548,11 @@ platform :ios do # Get the current build version, and update it if needed version_config_path = File.join(PROJECT_ROOT_FOLDER, 'config', 'Version.internal.xcconfig') versions = Xcodeproj::Config.new(File.new(version_config_path)).to_hash - build_number = versions['VERSION_LONG'] - - if options.key?(:build_number) - build_number = options[:build_number] - - UI.message("Updating build version to #{build_number}") - - versions['VERSION_LONG'] = build_number - new_config = Xcodeproj::Config.new(versions) - new_config.save_as(Pathname.new(version_config_path)) - end + build_number = get_build_number + UI.message("Updating build version to #{build_number}") + versions['VERSION_LONG'] = build_number + new_config = Xcodeproj::Config.new(versions) + new_config.save_as(Pathname.new(version_config_path)) gym( scheme: 'WordPress Alpha', @@ -941,6 +936,27 @@ def ensure_sentry_installed UI.user_error('sentry-cli not installed') unless sh('command -v sentry-cli') end +# This function is Buildkite-specific +def get_build_number + + # This should work outside of Buildkite + if ENV['BUILDKITE'] != 'true' + require 'git' + + repo = Git.open(PROJECT_ROOT_FOLDER) + current_branch = repo.current_branch + current_commit = repo.revparse('HEAD')[0, 7] + + return "#{current_branch}-#{current_commit}" + end + + if ENV['BUILDKITE_PULL_REQUEST'] == 'false' + return "#{ENV['BUILDKITE_BRANCH']}-#{ENV['BUILDKITE_COMMIT'][0,7]}" + end + + return "pr#{ENV['BUILDKITE_PULL_REQUEST']}-#{ENV['BUILDKITE_COMMIT'][0,7]}" +end + # Application-agnostic settings for the `upload_to_app_store` action, also # known as `deliver`. UPLOAD_TO_APP_STORE_COMMON_PARAMS = { diff --git a/fastlane/Jetpack-Fastfile b/fastlane/Jetpack-Fastfile index 9d2595c02908..b785d1b4bf71 100644 --- a/fastlane/Jetpack-Fastfile +++ b/fastlane/Jetpack-Fastfile @@ -17,24 +17,13 @@ APP_IDENTIFIER = 'com.automattic.jetpack' desc "Builds and uploads a Jetpack installable build" lane :build_and_upload_jetpack_installable_build do | options | jetpack_alpha_code_signing - require 'git' # Get the current build version, and update it if needed - version_config_path = File.join(PROJECT_ROOT_FOLDER, "config", "Version.internal.xcconfig") + version_config_path = File.join(PROJECT_ROOT_FOLDER, 'config', 'Version.internal.xcconfig') versions = Xcodeproj::Config.new(File.new(version_config_path)).to_hash - - short_hash = last_git_commit[:abbreviated_commit_hash] - - build_number = [ - short_hash, - '-', - Time.new.strftime("%Y%m%d-%H%M") - ].join - + build_number = get_build_number UI.message("Updating build version to #{build_number}") - - versions["VERSION_SHORT"] = "0.1" - versions["VERSION_LONG"] = build_number + versions['VERSION_LONG'] = build_number new_config = Xcodeproj::Config.new(versions) new_config.save_as(Pathname.new(version_config_path)) From 210e9c78d31e206fb241490d2ac27c6f2f5dd7ff Mon Sep 17 00:00:00 2001 From: Jeremy Massel <1123407+jkmassel@users.noreply.github.com> Date: Thu, 27 Jan 2022 15:20:23 -0700 Subject: [PATCH 110/114] Ensure Sentry is installed for Jetpack, too --- fastlane/Jetpack-Fastfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/fastlane/Jetpack-Fastfile b/fastlane/Jetpack-Fastfile index b785d1b4bf71..8b32b386122c 100644 --- a/fastlane/Jetpack-Fastfile +++ b/fastlane/Jetpack-Fastfile @@ -16,6 +16,8 @@ APP_IDENTIFIER = 'com.automattic.jetpack' ##################################################################################### desc "Builds and uploads a Jetpack installable build" lane :build_and_upload_jetpack_installable_build do | options | + ensure_sentry_installed + jetpack_alpha_code_signing # Get the current build version, and update it if needed From fe5dbdd87fec160f0550bedf8a71294e4349e74a Mon Sep 17 00:00:00 2001 From: Jeremy Massel <1123407+jkmassel@users.noreply.github.com> Date: Thu, 27 Jan 2022 15:52:15 -0700 Subject: [PATCH 111/114] Fix editor goofs --- .buildkite/commands/installable-build-jetpack.sh | 2 +- .buildkite/commands/installable-build-wordpress.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.buildkite/commands/installable-build-jetpack.sh b/.buildkite/commands/installable-build-jetpack.sh index ad2e8b37dd6c..1bf86ad6ab3d 100644 --- a/.buildkite/commands/installable-build-jetpack.sh +++ b/.buildkite/commands/installable-build-jetpack.sh @@ -14,4 +14,4 @@ echo "--- :closed_lock_with_key: Installing Secrets" bundle exec fastlane run configure_apply echo "--- :hammer_and_wrench: Building" -bundle exec fastlane build_and_upload_jetpack_installable_build \ No newline at end of file +bundle exec fastlane build_and_upload_jetpack_installable_build diff --git a/.buildkite/commands/installable-build-wordpress.sh b/.buildkite/commands/installable-build-wordpress.sh index 288c3c70f267..7acd9111de6e 100644 --- a/.buildkite/commands/installable-build-wordpress.sh +++ b/.buildkite/commands/installable-build-wordpress.sh @@ -14,4 +14,4 @@ echo "--- :closed_lock_with_key: Installing Secrets" bundle exec fastlane run configure_apply echo "--- :hammer_and_wrench: Building" -bundle exec fastlane build_and_upload_installable_build \ No newline at end of file +bundle exec fastlane build_and_upload_installable_build From fa6c1436c23da233bd66c488539575715abacfcd Mon Sep 17 00:00:00 2001 From: Jeremy Massel <1123407+jkmassel@users.noreply.github.com> Date: Thu, 27 Jan 2022 15:53:11 -0700 Subject: [PATCH 112/114] Use a more-specific method name --- fastlane/Fastfile | 4 ++-- fastlane/Jetpack-Fastfile | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/fastlane/Fastfile b/fastlane/Fastfile index 7a42055f403c..5799f3969558 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -565,7 +565,7 @@ platform :ios do # Get the current build version, and update it if needed version_config_path = File.join(PROJECT_ROOT_FOLDER, 'config', 'Version.internal.xcconfig') versions = Xcodeproj::Config.new(File.new(version_config_path)).to_hash - build_number = get_build_number + build_number = generate_installable_build_number UI.message("Updating build version to #{build_number}") versions['VERSION_LONG'] = build_number new_config = Xcodeproj::Config.new(versions) @@ -976,7 +976,7 @@ def ensure_sentry_installed end # This function is Buildkite-specific -def get_build_number +def generate_installable_build_number # This should work outside of Buildkite if ENV['BUILDKITE'] != 'true' diff --git a/fastlane/Jetpack-Fastfile b/fastlane/Jetpack-Fastfile index 8b32b386122c..be1a7cc508e0 100644 --- a/fastlane/Jetpack-Fastfile +++ b/fastlane/Jetpack-Fastfile @@ -23,7 +23,7 @@ APP_IDENTIFIER = 'com.automattic.jetpack' # Get the current build version, and update it if needed version_config_path = File.join(PROJECT_ROOT_FOLDER, 'config', 'Version.internal.xcconfig') versions = Xcodeproj::Config.new(File.new(version_config_path)).to_hash - build_number = get_build_number + build_number = generate_installable_build_number UI.message("Updating build version to #{build_number}") versions['VERSION_LONG'] = build_number new_config = Xcodeproj::Config.new(versions) From d9ef9c15494b6198b4c4c9e71ff81e2e448af1e1 Mon Sep 17 00:00:00 2001 From: Jeremy Massel <1123407+jkmassel@users.noreply.github.com> Date: Thu, 27 Jan 2022 16:01:43 -0700 Subject: [PATCH 113/114] Cleanup generate_installable_build_number --- fastlane/Fastfile | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/fastlane/Fastfile b/fastlane/Fastfile index 5799f3969558..be1740632bcf 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -978,22 +978,19 @@ end # This function is Buildkite-specific def generate_installable_build_number - # This should work outside of Buildkite - if ENV['BUILDKITE'] != 'true' - require 'git' + if ENV['BUILDKITE'] + commit = ENV['BUILDKITE_COMMIT'][0,7] + branch = ENV['BUILDKITE_BRANCH'] + pr_num = ENV['BUILDKITE_PULL_REQUEST'] + return pr_num == 'false' ? "#{branch}-#{commit}" : "pr#{pr_number}-#{commit}" + else repo = Git.open(PROJECT_ROOT_FOLDER) - current_branch = repo.current_branch - current_commit = repo.revparse('HEAD')[0, 7] + commit = repo.current_branch + branch = repo.revparse('HEAD')[0, 7] - return "#{current_branch}-#{current_commit}" + return "#{branch}-#{commit}" end - - if ENV['BUILDKITE_PULL_REQUEST'] == 'false' - return "#{ENV['BUILDKITE_BRANCH']}-#{ENV['BUILDKITE_COMMIT'][0,7]}" - end - - return "pr#{ENV['BUILDKITE_PULL_REQUEST']}-#{ENV['BUILDKITE_COMMIT'][0,7]}" end # Application-agnostic settings for the `upload_to_app_store` action, also From d8ea67060750525297fa3aea2038d37c85e1e97f Mon Sep 17 00:00:00 2001 From: Jeremy Massel <1123407+jkmassel@users.noreply.github.com> Date: Thu, 27 Jan 2022 16:07:02 -0700 Subject: [PATCH 114/114] Fix a bad variable name --- fastlane/Fastfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fastlane/Fastfile b/fastlane/Fastfile index be1740632bcf..b69a4cb08162 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -983,7 +983,7 @@ def generate_installable_build_number branch = ENV['BUILDKITE_BRANCH'] pr_num = ENV['BUILDKITE_PULL_REQUEST'] - return pr_num == 'false' ? "#{branch}-#{commit}" : "pr#{pr_number}-#{commit}" + return pr_num == 'false' ? "#{branch}-#{commit}" : "pr#{pr_num}-#{commit}" else repo = Git.open(PROJECT_ROOT_FOLDER) commit = repo.current_branch