Fix i18n issues reported on Crowdin (#13191)

* Pluralize `js.topics.bulk.dismiss_new_with_selected`
  This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-fr#57320

* Pluralize `js.topics.bulk.dismiss_read_with_selected`
  This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-fr#57316

* Pluralize `js.topics.bulk.dismiss_button_with_selected`

* Replaces concatenated string used by `js.topic.suggest_create_topic`
  This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-fr#41834

* Less confusing `admin_js.admin.watched_words.test.modal_title`
  This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-sv#44992

* Delete unused `backup.location.*` keys
  This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-fr#46330

* Replace "reviewable" with "reviewable items"
  This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-fr#56952

* Remove "ago" from `emails.incoming.missing_attachment`
  This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-sv#46038

* Remove "/Posts" from `js.keyboard_shortcuts_help.application.dismiss_new_posts`
  Because the shortcut doesn't do anything to posts anymore.
  This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/246/en-de#43180

* Pluralize `user.cannot_delete_has_posts`
  This fixes https://discourse.crowdin.com/translate/f3230e7607a36bb0a2f97fd90605a44e/248/en-he#57490
This commit is contained in:
Gerhard Schlager 2021-06-22 11:29:35 +02:00 committed by GitHub
parent 5efed91128
commit fa470cf6fe
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 25 additions and 20 deletions

View File

@ -114,7 +114,7 @@ export default Controller.extend(ModalFunctionality, {
keysDelimiter: PLUS,
}),
help: buildShortcut("application.help", { keys1: ["?"] }),
dismiss_new_posts: buildShortcut("application.dismiss_new_posts", {
dismiss_new: buildShortcut("application.dismiss_new", {
keys1: ["x", "r"],
}),
dismiss_topics: buildShortcut("application.dismiss_topics", {

View File

@ -77,8 +77,7 @@ model=model showResetNew=showResetNew showDismissRead=showDismissRead resetNew=(
{{#footer-message education=footerEducation message=footerMessage}}
{{#if latest}}
{{#if canCreateTopicOnCategory}}
{{i18n "topics.none.ready_to_create"}}
<a href {{action "createTopic"}}>{{i18n "topic.suggest_create_topic"}}</a>
{{discourse-linked-text action=(route-action "createTopic") text="topic.suggest_create_topic"}}
{{/if}}
{{else if top}}
{{#link-to "discovery.categories"}}{{i18n "topic.browse_all_categories"}}{{/link-to}}, {{#link-to "discovery.latest"}}{{i18n "topic.view_latest_topics"}}{{/link-to}} {{i18n "or"}} {{i18n "filters.top.other_periods"}}

View File

@ -38,7 +38,9 @@ model=model showResetNew=showResetNew showDismissRead=showDismissRead resetNew=(
{{#footer-message education=footerEducation message=footerMessage}}
{{#if latest}}
{{#if canCreateTopicOnCategory}}<a href {{action "createTopic"}}>{{i18n "topic.suggest_create_topic"}}</a>{{/if}}
{{#if canCreateTopicOnCategory}}
{{discourse-linked-text action=(route-action "createTopic") text="topic.suggest_create_topic"}}
{{/if}}
{{else if top}}
{{#link-to "discovery.categories"}}{{i18n "topic.browse_all_categories"}}{{/link-to}}, {{#link-to "discovery.latest"}}{{i18n "topic.view_latest_topics"}}{{/link-to}} {{i18n "or"}} {{i18n "filters.top.other_periods"}}
{{top-period-buttons period=period action=(action "changePeriod")}}

View File

@ -40,7 +40,7 @@
<li>{{html-safe shortcuts.application.show_incoming_updated_topics}}</li>
<li>{{html-safe shortcuts.application.search}}</li>
<li>{{html-safe shortcuts.application.help}}</li>
<li>{{html-safe shortcuts.application.dismiss_new_posts}}</li>
<li>{{html-safe shortcuts.application.dismiss_new}}</li>
<li>{{html-safe shortcuts.application.dismiss_topics}}</li>
<li>{{html-safe shortcuts.application.log_out}}</li>
</ul>

View File

@ -420,7 +420,7 @@ class Admin::UsersController < Admin::AdminController
rescue UserDestroyer::PostsExistError
render json: {
deleted: false,
message: I18n.t("user.cannot_delete_has_posts", username: user.username, post_count: user.posts.joins(:topic).count),
message: I18n.t("user.cannot_delete_has_posts", username: user.username, count: user.posts.joins(:topic).count),
}, status: 403
end
end

View File

@ -2364,13 +2364,19 @@ en:
delete: "Delete Topics"
dismiss: "Dismiss"
dismiss_read: "Dismiss all unread"
dismiss_read_with_selected: "Dismiss %{count} unread"
dismiss_read_with_selected:
one: "Dismiss %{count} unread"
other: "Dismiss %{count} unread"
dismiss_button: "Dismiss…"
dismiss_button_with_selected: "Dismiss (%{count})…"
dismiss_button_with_selected:
one: "Dismiss (%{count})…"
other: "Dismiss (%{count})…"
dismiss_tooltip: "Dismiss just new posts or stop tracking topics"
also_dismiss_topics: "Stop tracking these topics so they never show up as unread for me again"
dismiss_new: "Dismiss New"
dismiss_new_with_selected: "Dismiss New (%{count})"
dismiss_new_with_selected:
one: "Dismiss New (%{count})"
other: "Dismiss New (%{count})"
toggle: "toggle bulk selection of topics"
actions: "Bulk Actions"
change_category: "Set Category"
@ -2401,7 +2407,6 @@ en:
new: "You have no new topics."
read: "You haven't read any topics yet."
posted: "You haven't posted in any topics yet."
ready_to_create: "Ready to "
latest: "You're all caught up!"
bookmarks: "You have no bookmarked topics yet."
category: "There are no %{category} topics."
@ -2511,7 +2516,7 @@ en:
browse_all_tags: Browse all tags
view_latest_topics: view latest topics
suggest_create_topic: start a new conversation?
suggest_create_topic: Ready to <a href>start a new conversation?</a>
jump_reply_up: jump to earlier reply
jump_reply_down: jump to later reply
deleted: "The topic has been deleted"
@ -3550,7 +3555,7 @@ en:
show_incoming_updated_topics: "%{shortcut} Show updated topics"
search: "%{shortcut} Search"
help: "%{shortcut} Open keyboard help"
dismiss_new_posts: "%{shortcut} Dismiss New/Posts"
dismiss_new: "%{shortcut} Dismiss New"
dismiss_topics: "%{shortcut} Dismiss Topics"
log_out: "%{shortcut} Log Out"
composing:
@ -4790,7 +4795,7 @@ en:
upload_successful: "Upload successful. Words have been added."
test:
button_label: "Test"
modal_title: "Test %{action} Watched Words"
modal_title: "%{action}: Test Watched Words"
description: "Enter text below to check for matches with watched words"
found_matches: "Found matches:"
no_matches: "No matches found"

View File

@ -111,7 +111,7 @@ en:
maximum_staged_user_per_email_reached: "Reached maximum number of staged users created per email."
no_subject: "(no subject)"
no_body: "(no body)"
missing_attachment: "(Attachment %{filename} is missing) ago."
missing_attachment: "(Attachment %{filename} is missing)"
continuing_old_discussion:
one: "Continuing the discussion from [%{title}](%{url}), because it was created more than %{count} day ago."
other: "Continuing the discussion from [%{title}](%{url}), because it was created more than %{count} days ago."
@ -279,9 +279,6 @@ en:
not_enough_space_on_disk: "There is not enough space on disk to upload this backup."
invalid_filename: "The backup filename contains invalid characters. Valid characters are a-z 0-9 . - _."
file_exists: "The file you are trying to upload already exists."
location:
local: "Local"
s3: "Amazon S3"
invalid_params: "You supplied invalid parameters to the request: %{message}"
not_logged_in: "You need to be logged in to do that."
@ -1973,7 +1970,7 @@ en:
reviewable_claiming: "Does reviewable content need to be claimed before it can be acted upon?"
reviewable_default_topics: "Show reviewable content grouped by topic by default"
reviewable_default_visibility: "Don't show reviewable items unless they meet this priority"
reviewable_low_priority_threshold: "The priority filter hides reviewable that doesn't meet this score unless the '(any)' filter is used."
reviewable_low_priority_threshold: "The priority filter hides reviewable items that don't meet this score unless the '(any)' filter is used."
high_trust_flaggers_auto_hide_posts: "New user posts are automatically hidden after being flagged as spam by a TL3+ user"
cooldown_hours_until_reflag: "How much time users will have to wait until they are able to reflag a post"
@ -2597,7 +2594,9 @@ en:
email_in_spam_header: "User's first email was flagged as spam"
already_silenced: "User was already silenced by %{staff} %{time_ago}."
already_suspended: "User was already suspended by %{staff} %{time_ago}."
cannot_delete_has_posts: "User %{username} has %{post_count} posts(s), either public posts or personal messages, so they can't be deleted."
cannot_delete_has_posts:
one: "User %{username} has %{count} post in a public topic or personal message, so they can't be deleted."
other: "User %{username} has %{count} posts in public topics or personal messages, so they can't be deleted."
reviewables_reminder:
submitted:

View File

@ -635,7 +635,7 @@ RSpec.describe Admin::UsersController do
expect(response.status).to eq(403)
json = response.parsed_body
expect(json['deleted']).to eq(false)
expect(json['message']).to eq(I18n.t("user.cannot_delete_has_posts", username: delete_me.username, post_count: post_count))
expect(json['message']).to eq(I18n.t("user.cannot_delete_has_posts", username: delete_me.username, count: post_count))
end
it "doesn't return an error if delete_posts == true" do