From 076beaff52256c9560cc7732218c6ae89e6e42bd Mon Sep 17 00:00:00 2001 From: Harrison Healey Date: Wed, 6 May 2026 10:46:10 -0400 Subject: [PATCH 1/6] Update interdependency between packages to 11.8.0 (#36449) * Update interdependency between packages to 11.8.0 * Fix bad merge upstream --- webapp/channels/src/components/recaps_link/recaps_link.tsx | 2 +- webapp/package-lock.json | 2 +- webapp/platform/components/package.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/webapp/channels/src/components/recaps_link/recaps_link.tsx b/webapp/channels/src/components/recaps_link/recaps_link.tsx index 3250b254aa0b..4044003fa5e4 100644 --- a/webapp/channels/src/components/recaps_link/recaps_link.tsx +++ b/webapp/channels/src/components/recaps_link/recaps_link.tsx @@ -8,6 +8,7 @@ import {shallowEqual, useSelector} from 'react-redux'; import {Link, useLocation, matchPath, useRouteMatch} from 'react-router-dom'; import {AlertOutlineIcon, CreationOutlineIcon} from '@mattermost/compass-icons/components'; +import {WithTooltip} from '@mattermost/shared/components/tooltip'; import {getUnreadFinishedRecapsBadge} from 'mattermost-redux/selectors/entities/recaps'; import {getCurrentTeamId} from 'mattermost-redux/selectors/entities/teams'; @@ -15,7 +16,6 @@ import {getCurrentUserId} from 'mattermost-redux/selectors/entities/users'; import useGetFeatureFlagValue from 'components/common/hooks/useGetFeatureFlagValue'; import ChannelMentionBadge from 'components/sidebar/sidebar_channel/channel_mention_badge'; -import WithTooltip from 'components/with_tooltip'; import './recaps_link.scss'; diff --git a/webapp/package-lock.json b/webapp/package-lock.json index 8fe682c956fa..ead154c6a0cd 100644 --- a/webapp/package-lock.json +++ b/webapp/package-lock.json @@ -25746,7 +25746,7 @@ "peerDependencies": { "@babel/runtime-corejs3": "^7.17.8", "@mattermost/compass-icons": "0.1.53", - "@mattermost/shared": "11.7.0", + "@mattermost/shared": "11.8.0", "classnames": "^2.3.1", "lodash": "^4.17.21", "react-intl": "*", diff --git a/webapp/platform/components/package.json b/webapp/platform/components/package.json index 5bb329a5300f..ed1c0e28aaa3 100644 --- a/webapp/platform/components/package.json +++ b/webapp/platform/components/package.json @@ -41,7 +41,7 @@ "peerDependencies": { "@babel/runtime-corejs3": "^7.17.8", "@mattermost/compass-icons": "0.1.53", - "@mattermost/shared": "11.7.0", + "@mattermost/shared": "11.8.0", "classnames": "^2.3.1", "lodash": "^4.17.21", "react-intl": "*", From 6293e354c9999f373a6cdc4634f5de026deea0b0 Mon Sep 17 00:00:00 2001 From: "Weblate (bot)" Date: Wed, 6 May 2026 17:35:52 +0200 Subject: [PATCH 2/6] Translations update from Mattermost Weblate (#36404) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Translated using Weblate (Polish) Currently translated at 100.0% (3191 of 3191 strings) Translation: Mattermost/server Translate-URL: https://translate.mattermost.com/projects/mattermost/server/pl/ * Translated using Weblate (Polish) Currently translated at 100.0% (7243 of 7243 strings) Translation: Mattermost/webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/pl/ * Translated using Weblate (Turkish) Currently translated at 91.5% (6634 of 7243 strings) Translation: Mattermost/webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/tr/ * Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 99.9% (7239 of 7243 strings) Translation: Mattermost/webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/zh_Hans/ * Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 100.0% (3191 of 3191 strings) Translation: Mattermost/server Translate-URL: https://translate.mattermost.com/projects/mattermost/server/zh_Hans/ * Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 100.0% (7243 of 7243 strings) Translation: Mattermost/webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/zh_Hans/ * Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 100.0% (7243 of 7243 strings) Translation: Mattermost/webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/zh_Hans/ * Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 100.0% (3191 of 3191 strings) Translation: Mattermost/server Translate-URL: https://translate.mattermost.com/projects/mattermost/server/zh_Hans/ * Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 100.0% (7243 of 7243 strings) Translation: Mattermost/webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/zh_Hans/ * Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 100.0% (3191 of 3191 strings) Translation: Mattermost/server Translate-URL: https://translate.mattermost.com/projects/mattermost/server/zh_Hans/ * Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 100.0% (7243 of 7243 strings) Translation: Mattermost/webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/zh_Hans/ * Translated using Weblate (Turkish) Currently translated at 93.3% (6763 of 7243 strings) Translation: Mattermost/webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/tr/ * Translated using Weblate (Polish) Currently translated at 100.0% (7243 of 7243 strings) Translation: Mattermost/webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/pl/ * Translated using Weblate (Polish) Currently translated at 100.0% (7243 of 7243 strings) Translation: Mattermost/webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/pl/ * Update translation files Updated by "Cleanup translation files" hook in Weblate. Translation: Mattermost/server Translate-URL: https://translate.mattermost.com/projects/mattermost/server/ * Update translation files Updated by "Cleanup translation files" hook in Weblate. Translation: Mattermost/webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/ * Translated using Weblate (Norwegian Bokmål) Currently translated at 76.9% (5617 of 7303 strings) Translation: Mattermost/webapp Translate-URL: https://translate.mattermost.com/projects/mattermost/webapp/nb_NO/ --------- Co-authored-by: master7 Co-authored-by: Kaya Zeren Co-authored-by: Sharuru Co-authored-by: ThrRip Co-authored-by: Frank Paul Silye Co-authored-by: Mattermost Build --- server/i18n/be.json | 4 - server/i18n/cs.json | 4 - server/i18n/de.json | 4 - server/i18n/en-AU.json | 4 - server/i18n/ja.json | 4 - server/i18n/ko.json | 4 - server/i18n/nl.json | 4 - server/i18n/pl.json | 128 +- server/i18n/sv.json | 4 - server/i18n/tr.json | 4 - server/i18n/zh-CN.json | 1946 ++++++++++++++------------- webapp/channels/src/i18n/be.json | 3 - webapp/channels/src/i18n/cs.json | 3 - webapp/channels/src/i18n/de.json | 4 - webapp/channels/src/i18n/en-AU.json | 3 - webapp/channels/src/i18n/ja.json | 4 - webapp/channels/src/i18n/ko.json | 2 - webapp/channels/src/i18n/nb-NO.json | 5 +- webapp/channels/src/i18n/nl.json | 4 - webapp/channels/src/i18n/pl.json | 18 +- webapp/channels/src/i18n/ru.json | 3 - webapp/channels/src/i18n/sv.json | 3 - webapp/channels/src/i18n/tr.json | 171 ++- webapp/channels/src/i18n/zh-CN.json | 990 +++++++------- 24 files changed, 1828 insertions(+), 1495 deletions(-) diff --git a/server/i18n/be.json b/server/i18n/be.json index b1f218d151a6..aa932490fac5 100644 --- a/server/i18n/be.json +++ b/server/i18n/be.json @@ -10635,10 +10635,6 @@ "id": "app.pap.access_control.channel_group_constrained", "translation": "Канал абмежаваны для груп і да яго не могуць быць прыменены палітыкі кантролю доступу." }, - { - "id": "app.pap.access_control.channel_not_private", - "translation": "Палітыкі кантролю доступу могуць быць прыменены толькі да прыватных каналаў." - }, { "id": "app.pap.access_control.channel_shared", "translation": "Да агульных каналаў не могуць быць прыменены палітыкі кантролю доступу." diff --git a/server/i18n/cs.json b/server/i18n/cs.json index 78a8974f9391..c3eab47fddf1 100644 --- a/server/i18n/cs.json +++ b/server/i18n/cs.json @@ -10531,10 +10531,6 @@ "id": "app.pap.access_control.channel_group_constrained", "translation": "Kanál je omezen skupinou a nelze na něj použít pravidla řízení přístupu." }, - { - "id": "app.pap.access_control.channel_not_private", - "translation": "Pravidla řízení přístupu lze použít pouze na soukromé kanály." - }, { "id": "app.pap.access_control.channel_shared", "translation": "Na sdílené kanály nelze použít pravidla řízení přístupu." diff --git a/server/i18n/de.json b/server/i18n/de.json index 31dc02a2c917..49219dca2842 100644 --- a/server/i18n/de.json +++ b/server/i18n/de.json @@ -10659,10 +10659,6 @@ "id": "app.pap.access_control.channel_group_constrained", "translation": "Der Kanal ist gruppenbeschränkt und kann keine Richtlinien zur Zugriffskontrolle anwenden." }, - { - "id": "app.pap.access_control.channel_not_private", - "translation": "Richtlinien zur Zugangskontrolle können nur auf private Kanäle angewendet werden." - }, { "id": "app.pap.access_control.channel_shared", "translation": "Auf gemeinsam genutzte Kanäle kann keine Richtlinie zur Zugriffskontrolle angewendet werden." diff --git a/server/i18n/en-AU.json b/server/i18n/en-AU.json index 82a61091f8ac..8bfb8691064a 100644 --- a/server/i18n/en-AU.json +++ b/server/i18n/en-AU.json @@ -10743,10 +10743,6 @@ "id": "app.pap.access_control.channel_group_constrained", "translation": "Channel is group constrained and cannot have access control policies applied." }, - { - "id": "app.pap.access_control.channel_not_private", - "translation": "Access control policies can only be applied to private channels." - }, { "id": "app.pap.access_control.channel_shared", "translation": "Shared channels cannot have access control policy applied." diff --git a/server/i18n/ja.json b/server/i18n/ja.json index 36786edbcd7d..f6fd1731d168 100644 --- a/server/i18n/ja.json +++ b/server/i18n/ja.json @@ -10665,10 +10665,6 @@ "id": "app.pap.access_control.channel_group_constrained", "translation": "チャンネルはグループによって制限されており、アクセス制御ポリシーを適用できません。" }, - { - "id": "app.pap.access_control.channel_not_private", - "translation": "アクセス制御ポリシーは非公開チャンネルに対してのみ適用できます。" - }, { "id": "app.pap.access_control.channel_shared", "translation": "共有チャンネルにはアクセス制御ポリシーを適用できません。" diff --git a/server/i18n/ko.json b/server/i18n/ko.json index f23af166da07..c0a5ef19982a 100644 --- a/server/i18n/ko.json +++ b/server/i18n/ko.json @@ -9177,10 +9177,6 @@ "id": "app.pap.access_control.channel_group_constrained", "translation": "채널은 그룹이 제한되어 있으며 액세스 제어 정책을 적용할 수 없습니다." }, - { - "id": "app.pap.access_control.channel_not_private", - "translation": "액세스 제어 정책은 비공개 채널에만 적용할 수 있습니다." - }, { "id": "app.pap.access_control.channel_shared", "translation": "공유 채널에는 액세스 제어 정책을 적용할 수 없습니다." diff --git a/server/i18n/nl.json b/server/i18n/nl.json index 0661ba4f43a4..dea04bbaa5e3 100644 --- a/server/i18n/nl.json +++ b/server/i18n/nl.json @@ -10671,10 +10671,6 @@ "id": "app.pap.access_control.channel_group_constrained", "translation": "Kanaal is groepsgebonden en kan geen toegangscontrolebeleid hebben." }, - { - "id": "app.pap.access_control.channel_not_private", - "translation": "Beleid voor toegangscontrole kan alleen worden toegepast op privékanalen." - }, { "id": "app.pap.access_control.channel_shared", "translation": "Op gedeelde kanalen kan geen toegangscontrolebeleid worden toegepast." diff --git a/server/i18n/pl.json b/server/i18n/pl.json index b89227555b73..3cba5837741c 100644 --- a/server/i18n/pl.json +++ b/server/i18n/pl.json @@ -10663,10 +10663,6 @@ "id": "app.pap.access_control.channel_group_constrained", "translation": "Kanały są ograniczone do grup i nie mogą mieć zastosowanych polityk kontroli dostępu." }, - { - "id": "app.pap.access_control.channel_not_private", - "translation": "Polityki kontroli dostępu mogą być stosowane tylko do kanałów prywatnych." - }, { "id": "app.pap.access_control.channel_shared", "translation": "Kanały udostępnione nie mogą mieć zastosowanej polityki kontroli dostępu." @@ -12666,5 +12662,129 @@ { "id": "model.access_policy.is_valid.scope_id_without_scope.app_error", "translation": "Identyfikator zakresu nie może być ustawiony bez zakresu." + }, + { + "id": "api.property.v2_group_not_found.app_error", + "translation": "Określona grupa właściwości nie została znaleziona." + }, + { + "id": "api.property_field.patch.cannot_link_existing.app_error", + "translation": "Nie można ustawić linked_field_id na istniejącym polu. Można go ustawić tylko w czasie tworzenia." + }, + { + "id": "api.property_field.patch.linked_field_change.app_error", + "translation": "Nie można zmienić celu linku. Najpierw usuń link, a następnie utwórz nowe połączone pole." + }, + { + "id": "api.property_field.patch.linked_options_change.app_error", + "translation": "Nie można modyfikować opcji pola Link. Opcje są dziedziczone ze źródła." + }, + { + "id": "api.property_field.patch.linked_type_change.app_error", + "translation": "Nie można zmodyfikować typu pola Link. Typ jest dziedziczony ze źródła." + }, + { + "id": "api.property_value.template_no_values.app_error", + "translation": "Pola szablonu nie mogą mieć wartości." + }, + { + "id": "app.bot.update.internal_error", + "translation": "Nie można zaktualizować bota." + }, + { + "id": "app.import.import_bot.lookup_error", + "translation": "Nie udało się wyszukać istniejącego bota" + }, + { + "id": "app.import.import_bot.user_not_found.error", + "translation": "Nie znaleziono użytkownika dla bota" + }, + { + "id": "app.property_field.create.linked_source_cross_group.app_error", + "translation": "Nie można utworzyć linku do pola w innej grupie." + }, + { + "id": "app.property_field.create.linked_source_deleted.app_error", + "translation": "Pole Link Source zostało usunięte." + }, + { + "id": "app.property_field.create.linked_source_is_linked.app_error", + "translation": "Nie możesz linkować do pola, które samo jest linkowane. Łańcuchy nie są dozwolone." + }, + { + "id": "app.property_field.create.linked_source_not_found.app_error", + "translation": "Pole Link Source nie zostało znalezione." + }, + { + "id": "app.property_field.create.linked_source_not_template.app_error", + "translation": "Możesz linkować tylko do pól szablonu." + }, + { + "id": "app.property_field.create.linked_source_protected.app_error", + "translation": "Tylko Wtyczka źródłowa może tworzyć pola Link z chronionego szablonu." + }, + { + "id": "app.property_field.create.linked_target_type_mismatch.app_error", + "translation": "Typ docelowy pola Link musi być zgodny z typem docelowym szablonu źródłowego." + }, + { + "id": "app.property_field.create.template_cannot_be_linked.app_error", + "translation": "Pola szablonu nie mogą mieć pola z linkiem." + }, + { + "id": "app.property_field.delete.has_linked_dependents.app_error", + "translation": "Nie możesz usunąć pola z aktywnymi linkami zależnymi. Najpierw rozłącz lub usuń pola zależne." + }, + { + "id": "app.property_field.update.cannot_change_link_target.app_error", + "translation": "Nie można zmienić celu linku. Najpierw usuń link, a następnie utwórz nowe połączone pole." + }, + { + "id": "app.property_field.update.cannot_link_existing.app_error", + "translation": "Nie można ustawić linked_field_id na istniejącym polu. Można go ustawić tylko w czasie tworzenia." + }, + { + "id": "app.property_field.update.conflict.app_error", + "translation": "Nie można zaktualizować pola właściwości z powodu konfliktu. Spróbuj ponownie." + }, + { + "id": "app.property_field.update.linked_options_change.app_error", + "translation": "Nie można modyfikować opcji pola Link. Opcje są dziedziczone ze źródła." + }, + { + "id": "app.property_field.update.linked_type_change.app_error", + "translation": "Nie można zmodyfikować typu pola Link. Typ jest dziedziczony ze źródła." + }, + { + "id": "app.property_field.update.type_change_with_dependents.app_error", + "translation": "Nie można zmienić typu pola z aktywnymi linkami zależności." + }, + { + "id": "app.property_field.version_mismatch.app_error", + "translation": "Wersje pola właściwości i grupy są niekompatybilne." + }, + { + "id": "app.property_value.template_no_values.app_error", + "translation": "Pola szablonu nie mogą mieć wartości." + }, + { + "id": "app.upload.gen_file_info.invalid_filename.app_error", + "translation": "Nieprawidłowa nazwa pliku." + }, + { + "id": "ent.elasticsearch.indexer.do_job.bulk_failures.error", + "translation": "Zadanie indeksowania zostało zakończone, ale dokumenty {{.NumFailed}} zostały odrzucone przez zaplecze wyszukiwania i nie zostały zindeksowane" + }, + { + "id": "ent.elasticsearch.indexer.do_job.create_bulk_processor.error", + "translation": "Worker indeksujący nie mógł zainicjować procesora zbiorczego" + }, + { + "id": "model.file_info.is_valid.name.app_error", + "translation": "Nieprawidłowa wartość dla nazwy." + }, + { + "id": "model.property_group.is_valid.app_error", + "translation": "Nieprawidłowa grupa właściwości: {{.FieldName}} ({{.Reason}})." } ] diff --git a/server/i18n/sv.json b/server/i18n/sv.json index 44346caae35a..e5543a7c43cc 100644 --- a/server/i18n/sv.json +++ b/server/i18n/sv.json @@ -10659,10 +10659,6 @@ "id": "app.pap.access_control.channel_group_constrained", "translation": "Kanalen är grupp-begränsad och kan inte omfattas av policy för åtkomstkontroll." }, - { - "id": "app.pap.access_control.channel_not_private", - "translation": "Policyer för åtkomstkontroll kan endast tillämpas på privata kanaler." - }, { "id": "app.pap.access_control.channel_shared", "translation": "Delade kanaler kan inte omfattas av en policy för åtkomstkontroll." diff --git a/server/i18n/tr.json b/server/i18n/tr.json index 8185efae690b..2c657fbd7c48 100644 --- a/server/i18n/tr.json +++ b/server/i18n/tr.json @@ -10531,10 +10531,6 @@ "id": "app.pap.access_control.channel_group_constrained", "translation": "Kanalda grup kısıtlaması olduğundan erişim denetim ilkeleri uygulanamaz." }, - { - "id": "app.pap.access_control.channel_not_private", - "translation": "Erişim denetimi ilkeleri yalnızca özel kanallara uygulanabilir." - }, { "id": "app.pap.access_control.channel_shared", "translation": "Paylaşılan kanallara erişim denetim ilkesi uygulanamaz." diff --git a/server/i18n/zh-CN.json b/server/i18n/zh-CN.json index 2db1f6eb15dd..996eb6d3df89 100644 --- a/server/i18n/zh-CN.json +++ b/server/i18n/zh-CN.json @@ -85,11 +85,11 @@ }, { "id": "api.admin.test_email.body", - "translation": "看来你的 Mattermost 邮箱设置成功了!" + "translation": "看来您的 Mattermost 邮件设置成功了!" }, { "id": "api.admin.test_email.missing_server", - "translation": "需要SMTP服务器" + "translation": "需要 SMTP 服务器" }, { "id": "api.admin.test_email.reenter_password", @@ -97,11 +97,11 @@ }, { "id": "api.admin.test_email.subject", - "translation": "Mattermost - 测试邮箱设置" + "translation": "Mattermost - 测试邮件设置" }, { "id": "api.admin.test_s3.missing_s3_bucket", - "translation": "必须填写 S3 储存桶" + "translation": "必须填写 S3 存储桶" }, { "id": "api.admin.upload_brand_image.array.app_error", @@ -117,7 +117,7 @@ }, { "id": "api.admin.upload_brand_image.storage.app_error", - "translation": "不能上传图片。图片存储没有配置。" + "translation": "无法上传图片。未配置图片存储。" }, { "id": "api.admin.upload_brand_image.too_large.app_error", @@ -169,7 +169,7 @@ }, { "id": "api.channel.create_group.bad_size.app_error", - "translation": "团体消息频道必须至少包含 3 位但不超过 8 位用户。" + "translation": "群组消息频道必须至少包含 3 位且不超过 8 位用户。" }, { "id": "api.channel.create_group.bad_user.app_error", @@ -189,7 +189,7 @@ }, { "id": "api.channel.delete_channel.type.invalid", - "translation": "无法删除私信或组消息频道" + "translation": "无法删除私信或群组消息频道" }, { "id": "api.channel.join_channel.permissions.app_error", @@ -201,7 +201,7 @@ }, { "id": "api.channel.leave.default.app_error", - "translation": "不能退出默认频道{{.Channel}}。" + "translation": "不能退出默认频道 {{.Channel}}。" }, { "id": "api.channel.leave.direct.app_error", @@ -281,7 +281,7 @@ }, { "id": "api.channel.update_channel.tried.app_error", - "translation": "试图对默认频道{{.Channel}}执行一个无效的更新。" + "translation": "试图对默认频道 {{.Channel}} 执行无效更新。" }, { "id": "api.channel.update_channel_member_roles.scheme_role.app_error", @@ -293,7 +293,7 @@ }, { "id": "api.channel.update_channel_scheme.scheme_scope.error", - "translation": "无法设定频道方案因为提供的方案不是频道方案。" + "translation": "无法设置频道方案,因为提供的方案不是频道方案。" }, { "id": "api.channel.update_team_member_roles.scheme_role.app_error", @@ -305,7 +305,7 @@ }, { "id": "api.command.command_post.forbidden.app_error", - "translation": "指定的用户不属于指定的频道。" + "translation": "指定用户不属于指定频道。" }, { "id": "api.command.disabled.app_error", @@ -341,7 +341,7 @@ }, { "id": "api.command.invite_people.desc", - "translation": "发送一封邀请邮件给你的Mattermost团队" + "translation": "向您的 Mattermost 团队发送邀请邮件" }, { "id": "api.command.invite_people.email_invitations_off", @@ -349,7 +349,7 @@ }, { "id": "api.command.invite_people.email_off", - "translation": "邮件没有配置,没发送邀请" + "translation": "未配置邮件,未发送邀请" }, { "id": "api.command.invite_people.fail", @@ -369,7 +369,7 @@ }, { "id": "api.command.invite_people.no_email", - "translation": "请输入一个或更多有效的电子邮件地址" + "translation": "请输入一个或多个有效的邮箱地址" }, { "id": "api.command.invite_people.sent", @@ -405,7 +405,7 @@ }, { "id": "api.command_channel_header.message.app_error", - "translation": "比如提供 /header 命令的文字。" + "translation": "必须为 /header 命令提供文本。" }, { "id": "api.command_channel_header.name", @@ -541,7 +541,7 @@ }, { "id": "api.command_echo.desc", - "translation": "从您的帐号返回文本" + "translation": "从您的账号返回文本" }, { "id": "api.command_echo.high_volume.app_error", @@ -594,7 +594,7 @@ { "id": "api.command_groupmsg.invalid_user.app_error", "translation": { - "other": "无法找到用户:{{.Users}}无法找到用户:{{.Users}}" + "other": "无法找到用户:{{.Users}}" } }, { @@ -611,7 +611,7 @@ }, { "id": "api.command_groupmsg.permission.app_error", - "translation": "您没有合适的权限创建新的群消息。" + "translation": "您没有创建新群组消息的适当权限。" }, { "id": "api.command_help.desc", @@ -677,11 +677,11 @@ }, { "id": "api.command_invite_people.permission.app_error", - "translation": "您没有权限邀请新用户到这个服务器。" + "translation": "您没有权限邀请新用户到此服务器。" }, { "id": "api.command_join.desc", - "translation": "添加到公开频道" + "translation": "加入公共频道" }, { "id": "api.command_join.fail.app_error", @@ -721,11 +721,11 @@ }, { "id": "api.command_logout.desc", - "translation": "注销Mattermost" + "translation": "退出登录 Mattermost" }, { "id": "api.command_logout.name", - "translation": "注销" + "translation": "退出登录" }, { "id": "api.command_me.desc", @@ -805,7 +805,7 @@ }, { "id": "api.command_offline.desc", - "translation": "设置您的状态设为离线" + "translation": "将您的状态设置为离线" }, { "id": "api.command_offline.name", @@ -881,7 +881,7 @@ }, { "id": "api.command_settings.desc", - "translation": "打开设定对话框" + "translation": "打开设置对话框" }, { "id": "api.command_settings.name", @@ -889,7 +889,7 @@ }, { "id": "api.command_settings.unsupported.app_error", - "translation": "您的设备不支持设定命令。" + "translation": "您的设备不支持设置命令。" }, { "id": "api.command_shortcuts.desc", @@ -905,7 +905,7 @@ }, { "id": "api.command_shrug.desc", - "translation": "添加 ¯\\_(ツ)_/¯ 到你的消息" + "translation": "将 ¯\\_(ツ)_/¯ 添加到您的消息" }, { "id": "api.command_shrug.hint", @@ -921,23 +921,23 @@ }, { "id": "api.context.invalid_body_param.app_error", - "translation": "请求消息体有无效或缺少 {{.Name}}。" + "translation": "请求消息体的 {{.Name}} 无效或缺失。" }, { "id": "api.context.invalid_param.app_error", - "translation": "无效的 {{.Name}} 参数。" + "translation": "{{.Name}} 参数无效。" }, { "id": "api.context.invalid_token.error", - "translation": "无效会话令牌 token={{.Token}}, err={{.Error}}" + "translation": "会话令牌无效:token={{.Token}}, err={{.Error}}" }, { "id": "api.context.invalid_url_param.app_error", - "translation": "请求网址有无效或缺少 {{.Name}} 参数。" + "translation": "请求 URL 的 {{.Name}} 参数无效或缺失。" }, { "id": "api.context.mfa_required.app_error", - "translation": "此服务器要求多重验证。" + "translation": "此服务器要求多因素认证。" }, { "id": "api.context.permissions.app_error", @@ -945,11 +945,11 @@ }, { "id": "api.context.session_expired.app_error", - "translation": "无效或过期的会话,请重新登录。" + "translation": "会话无效或已过期,请重新登录。" }, { "id": "api.context.token_provided.app_error", - "translation": "会话不是 OAuth 但是查询字符串中含有令牌。" + "translation": "会话不是 OAuth,但查询字符串中含有令牌。" }, { "id": "api.create_terms_of_service.custom_terms_of_service_disabled.app_error", @@ -961,11 +961,11 @@ }, { "id": "api.email_batching.add_notification_email_to_batch.channel_full.app_error", - "translation": "批量电子邮件任务接收频道已满。请提高EmailBatchingBufferSize。" + "translation": "批量邮件任务接收频道已满。请提高 EmailBatchingBufferSize。" }, { "id": "api.email_batching.add_notification_email_to_batch.disabled.app_error", - "translation": "系统管理员禁用了批量电子邮件。" + "translation": "系统管理员已禁用批量邮件。" }, { "id": "api.email_batching.send_batched_email_notification.subject", @@ -979,7 +979,7 @@ }, { "id": "api.emoji.create.other_user.app_error", - "translation": "无效的用户 id。" + "translation": "用户 ID 无效。" }, { "id": "api.emoji.create.parse.app_error", @@ -1091,7 +1091,7 @@ }, { "id": "api.file.upload_file.storage.app_error", - "translation": "不能上传文件。图片存储没有配置。" + "translation": "无法上传文件。未配置图片存储。" }, { "id": "api.file.upload_file.too_large_detailed.app_error", @@ -1099,11 +1099,11 @@ }, { "id": "api.incoming_webhook.disabled.app_error", - "translation": "传入的 webhooks 已被系统管理员禁用。" + "translation": "传入 Webhook 已被系统管理员禁用。" }, { "id": "api.incoming_webhook.invalid_username.app_error", - "translation": "无效的用户名。" + "translation": "用户名无效。" }, { "id": "api.io_error", @@ -1111,15 +1111,15 @@ }, { "id": "api.ldap_group.not_found", - "translation": "未找到 ldap 组" + "translation": "未找到 LDAP 组" }, { "id": "api.ldap_groups.license_error", - "translation": "您的许可证不支持 ldap 组" + "translation": "您的许可证不支持 LDAP 组" }, { "id": "api.license.add_license.array.app_error", - "translation": "请求中‘许可证’为空数组。" + "translation": "请求中的“license”为空数组。" }, { "id": "api.license.add_license.expired.app_error", @@ -1127,7 +1127,7 @@ }, { "id": "api.license.add_license.invalid.app_error", - "translation": "无效的授权文件。" + "translation": "许可证文件无效。" }, { "id": "api.license.add_license.invalid_count.app_error", @@ -1147,15 +1147,15 @@ }, { "id": "api.license.add_license.save_active.app_error", - "translation": "有效许可证ID没有正确保存。" + "translation": "有效许可证 ID 未正确保存。" }, { "id": "api.license.add_license.unique_users.app_error", - "translation": "该许可证只支持 {{.Users}} 用户,当你的系统有 {{.Count}} 唯一用户。唯一用户通过邮件地址计算。你可以从站点报告 -> 查看统计查看总数量。" + "translation": "该许可证仅支持 {{.Users}} 位用户,但您的系统有 {{.Count}} 位唯一用户。唯一用户按邮箱地址计算。您可以在站点报告 > 查看统计中查看总数。" }, { "id": "api.license.client.old_format.app_error", - "translation": "暂未支持客户端授权的新格式。请在查询字串指定 format=old。" + "translation": "暂未支持客户端许可证的新格式。请在查询字符串中指定 format=old。" }, { "id": "api.marshal_error", @@ -1175,15 +1175,15 @@ }, { "id": "api.oauth.get_access_token.bad_client_id.app_error", - "translation": "invalid_request:错误的 client_id。" + "translation": "invalid_request:client_id 错误。" }, { "id": "api.oauth.get_access_token.bad_grant.app_error", - "translation": "invalid_request:错误的 grant_type。" + "translation": "invalid_request:grant_type 错误。" }, { "id": "api.oauth.get_access_token.credentials.app_error", - "translation": "invalid_client:无效的客户端凭证。" + "translation": "invalid_client:客户端凭证无效。" }, { "id": "api.oauth.get_access_token.disabled.app_error", @@ -1223,11 +1223,11 @@ }, { "id": "api.oauth.get_access_token.refresh_token.app_error", - "translation": "invalid_grant:无效的续期令牌。" + "translation": "invalid_grant:续期令牌无效。" }, { "id": "api.oauth.invalid_state_token.app_error", - "translation": "无效状态令牌。" + "translation": "状态令牌无效。" }, { "id": "api.oauth.register_oauth_app.turn_off.app_error", @@ -1255,11 +1255,11 @@ }, { "id": "api.oauth.singup_with_oauth.invalid_link.app_error", - "translation": "无效的注册链接。" + "translation": "注册链接无效。" }, { "id": "api.outgoing_webhook.disabled.app_error", - "translation": "传出的 webhooks 已被系统管理员禁用。" + "translation": "传出 Webhook 已被系统管理员禁用。" }, { "id": "api.plugin.upload.array.app_error", @@ -1287,11 +1287,11 @@ }, { "id": "api.post.create_post.channel_root_id.app_error", - "translation": "RootId 参数无效的 ChannelId。" + "translation": "RootId 参数的 ChannelId 无效。" }, { "id": "api.post.create_post.root_id.app_error", - "translation": "无效的 RootId 参数。" + "translation": "RootId 参数无效。" }, { "id": "api.post.create_webhook_post.creating.app_error", @@ -1323,22 +1323,22 @@ }, { "id": "api.post.do_action.action_id.app_error", - "translation": "无效的操作 id。" + "translation": "操作 ID 无效。" }, { "id": "api.post.do_action.action_integration.app_error", - "translation": "操作整合错误。" + "translation": "操作集成错误。" }, { "id": "api.post.get_message_for_notification.files_sent", "translation": { - "other": "{{.Count}} 文件已发送:{{.Filenames}}{{.Count}} 文件已发送:{{.Filenames}}" + "other": "已发送 {{.Count}} 个文件:{{.Filenames}}" } }, { "id": "api.post.get_message_for_notification.images_sent", "translation": { - "other": "{{.Count}} 图片已发送:{{.Filenames}}{{.Count}} 图片已发送:{{.Filenames}}" + "other": "已发送 {{.Count}} 张图片:{{.Filenames}}" } }, { @@ -1411,19 +1411,19 @@ }, { "id": "api.reaction.delete.archived_channel.app_error", - "translation": "您不能移除已归档的频道中的互动。" + "translation": "您不能移除已归档频道中的表情回应。" }, { "id": "api.reaction.save.archived_channel.app_error", - "translation": "您不能在已归档的频道互动。" + "translation": "您不能在已归档频道中添加表情回应。" }, { "id": "api.reaction.save_reaction.invalid.app_error", - "translation": "无效互动。" + "translation": "表情回应无效。" }, { "id": "api.reaction.save_reaction.user_id.app_error", - "translation": "您不能保存其他用户的互动。" + "translation": "您不能保存其他用户的表情回应。" }, { "id": "api.restricted_system_admin", @@ -1443,11 +1443,11 @@ }, { "id": "api.scheme.get_channels_for_scheme.scope.error", - "translation": "无法获取方案的频道因为提供的方案不是频道方案。" + "translation": "无法获取该方案的频道,因为提供的方案不是频道方案。" }, { "id": "api.scheme.get_teams_for_scheme.scope.error", - "translation": "无法获取方案的团队因为提供的方案不是团队方案。" + "translation": "无法获取该方案的团队,因为提供的方案不是团队方案。" }, { "id": "api.scheme.patch_scheme.license.error", @@ -1463,7 +1463,7 @@ }, { "id": "api.server.start_server.rate_limiting_memory_store", - "translation": "无法初始化频率限制内存储存。检查 MemoryStoreSize 设置。" + "translation": "无法初始化频率限制内存存储。请检查 MemoryStoreSize 设置。" }, { "id": "api.server.start_server.rate_limiting_rate_limiter", @@ -1475,75 +1475,75 @@ }, { "id": "api.slackimport.slack_add_bot_user.unable_import", - "translation": "无法导入整合/Slack 机器人用户 {{.Username}}。\r\n" + "translation": "无法导入集成/Slack 机器人用户 {{.Username}}。\n" }, { "id": "api.slackimport.slack_add_channels.added", - "translation": "\r\n频道已添加:\r\n" + "translation": "\n频道已添加:\n" }, { "id": "api.slackimport.slack_add_channels.failed_to_add_user", - "translation": "无法添加 Slack 用户 {{.Username}} 到频道。\r\n" + "translation": "无法添加 Slack 用户 {{.Username}} 到频道。\n" }, { "id": "api.slackimport.slack_add_channels.import_failed", - "translation": "无法导入 Slack 频道 {{.DisplayName}}。\r\n" + "translation": "无法导入 Slack 频道 {{.DisplayName}}。\n" }, { "id": "api.slackimport.slack_add_channels.merge", - "translation": "Slack 频道 {{.DisplayName}} 已在 Masttermost 频道存在。已合并两频道。\r\n" + "translation": "Slack 频道 {{.DisplayName}} 已作为 Mattermost 频道存在。已合并两个频道。\n" }, { "id": "api.slackimport.slack_add_users.created", - "translation": "\r\n已创建用户:\r\n" + "translation": "\n已创建用户:\n" }, { "id": "api.slackimport.slack_add_users.merge_existing", - "translation": "Slack 用户已和拥有邮箱地址 {{.Email}} 和用户名 {{.Username}} 的 Mattermost 用户合并。\r\n" + "translation": "Slack 用户已与拥有邮箱地址 {{.Email}} 和用户名 {{.Username}} 的 Mattermost 用户合并。\n" }, { "id": "api.slackimport.slack_add_users.merge_existing_failed", - "translation": "Slack 用户已和现有邮箱地址 {{.Email}} 和用户名 {{.Username}} 的 Mattermost 用户合并,但没法添加用户到他们的团队。\r\n" + "translation": "Slack 用户已与现有邮箱地址 {{.Email}}、用户名 {{.Username}} 的 Mattermost 用户合并,但无法将该用户添加到其团队。\n" }, { "id": "api.slackimport.slack_add_users.missing_email_address", - "translation": "用户 {{.Username}} 在 Slack 导出中没有邮箱地址。暂使用 {{.Email}} 代替。用户需要在登录至系统后更新其邮箱地址。\n" + "translation": "Slack 导出中的用户 {{.Username}} 没有邮箱地址。将暂时使用 {{.Email}} 代替。该用户登录系统后需要更新其邮箱地址。\n" }, { "id": "api.slackimport.slack_add_users.unable_import", - "translation": "不能导入 Slack 用户:{{.Username}}。\r\n" + "translation": "无法导入 Slack 用户:{{.Username}}。\n" }, { "id": "api.slackimport.slack_import.log", - "translation": "Mattermost Slack 导入日志 \r\n" + "translation": "Mattermost Slack 导入日志\n" }, { "id": "api.slackimport.slack_import.note1", - "translation": "- 有些信息可能未被导入因为导入程序不支持他们。\r\n" + "translation": "- 部分信息可能未导入,因为导入程序不支持这些信息。\n" }, { "id": "api.slackimport.slack_import.note2", - "translation": "- 暂不支持 Slack 机器人信息。\r\n" + "translation": "- 暂不支持 Slack 机器人消息。\n" }, { "id": "api.slackimport.slack_import.note3", - "translation": "- 更多错误可以到服务器日志查看。\r\n" + "translation": "- 可在服务器日志中查看更多错误。\n" }, { "id": "api.slackimport.slack_import.notes", - "translation": "\r\n注释:\r\n" + "translation": "\n备注:\n" }, { "id": "api.slackimport.slack_import.open.app_error", - "translation": "无法打开文件:{{.Filename}}。\r\n" + "translation": "无法打开文件:{{.Filename}}。\n" }, { "id": "api.slackimport.slack_import.team_fail", - "translation": "导入时无法获取要导入的团队。\r\n" + "translation": "导入时无法获取要导入的团队。\n" }, { "id": "api.slackimport.slack_import.zip.app_error", - "translation": "无法打开 Slack 导出的 zip 文件。\r\n" + "translation": "无法打开 Slack 导出的 zip 文件。\n" }, { "id": "api.status.user_not_found.app_error", @@ -1611,11 +1611,11 @@ }, { "id": "api.team.is_team_creation_allowed.disabled.app_error", - "translation": "团队创建被禁用。详细请询问您的系统管理员。" + "translation": "团队创建已禁用。详情请咨询系统管理员。" }, { "id": "api.team.is_team_creation_allowed.domain.app_error", - "translation": "电子邮件必须来自指定域名 (例如 @example.com)。详情请询问您的系统管理员。" + "translation": "邮箱地址必须来自指定域名(例如 @example.com)。详情请咨询系统管理员。" }, { "id": "api.team.join_team.post_and_forget", @@ -1623,7 +1623,7 @@ }, { "id": "api.team.join_user_to_team.allowed_domains.app_error", - "translation": "电子邮件必须来自指定域名 (例如 @example.com)。详情请询问您的系统管理员。" + "translation": "邮箱地址必须来自指定域名(例如 @example.com)。详情请咨询系统管理员。" }, { "id": "api.team.leave.left", @@ -1679,7 +1679,7 @@ }, { "id": "api.team.set_team_icon.storage.app_error", - "translation": "不能上传团队图标。没有配置图片存储。" + "translation": "无法上传团队图标。未配置图片存储。" }, { "id": "api.team.set_team_icon.too_large.app_error", @@ -1695,11 +1695,11 @@ }, { "id": "api.team.update_member_roles.not_a_member", - "translation": "指定的用户不属于指定的团队。" + "translation": "指定用户不属于指定团队。" }, { "id": "api.team.update_restricted_domains.mismatch.app_error", - "translation": "系统设定不允许限制团队到 {{ .Domain }}。请联系您的系统管理员。" + "translation": "系统设置不允许将团队限制为 {{ .Domain }}。请联系系统管理员。" }, { "id": "api.team.update_team_scheme.license.error", @@ -1707,31 +1707,31 @@ }, { "id": "api.team.update_team_scheme.scheme_scope.error", - "translation": "无法设定团队方案因为提供的方案不是团队方案。" + "translation": "无法设置团队方案,因为提供的方案不是团队方案。" }, { "id": "api.templates.deactivate_body.info", - "translation": "您注销了 {{ .SiteURL }} 上的帐号。" + "translation": "您在 {{ .SiteURL }} 上的账号已停用。" }, { "id": "api.templates.deactivate_body.title", - "translation": "您的帐号已在 {{ .ServerURL }} 注销" + "translation": "您在 {{ .ServerURL }} 上的账号已停用" }, { "id": "api.templates.deactivate_body.warning", - "translation": "如果这不是您的操作或者您想重新激活您的帐号,请联系您的系统管理员。" + "translation": "如果这不是您的操作,或者您想重新激活账号,请联系系统管理员。" }, { "id": "api.templates.deactivate_subject", - "translation": "[{{ .SiteName }}] 您的帐号已在 {{ .ServerURL }} 注销" + "translation": "[{{ .SiteName }}] 您在 {{ .ServerURL }} 上的账号已停用" }, { "id": "api.templates.email_change_body.info", - "translation": "您在 {{.TeamDisplayName}} 的邮件地址被更改至 {{.NewEmail}}。" + "translation": "您在 {{.TeamDisplayName}} 的邮箱地址已更改为 {{.NewEmail}}。" }, { "id": "api.templates.email_change_body.title", - "translation": "您更新了您的邮箱" + "translation": "您已更新邮箱地址" }, { "id": "api.templates.email_change_subject", @@ -1739,23 +1739,23 @@ }, { "id": "api.templates.email_change_verify_body.button", - "translation": "校验邮箱" + "translation": "验证邮箱" }, { "id": "api.templates.email_change_verify_body.info", - "translation": "请点击下面的链接确认这是正确的地址,以完成在{{.TeamDisplayName}}的电子邮件地址更新。" + "translation": "请点击下面的链接确认地址正确,以完成 {{.TeamDisplayName}} 的邮箱地址更新。" }, { "id": "api.templates.email_change_verify_body.title", - "translation": "您已成功更新您的电子邮件" + "translation": "您已成功更新邮箱地址" }, { "id": "api.templates.email_change_verify_subject", - "translation": "[{{ .SiteName }}] 验证新邮件地址" + "translation": "[{{ .SiteName }}] 验证新邮箱地址" }, { "id": "api.templates.email_footer", - "translation": "要更改您的通知偏好设定,登录到您的团队站点后并转至设置 > 通知。" + "translation": "要更改通知偏好设置,请登录团队站点并转到设置 > 通知。" }, { "id": "api.templates.email_info1", @@ -1791,23 +1791,23 @@ }, { "id": "api.templates.mfa_activated_body.info", - "translation": "多重验证添加到了您在 {{ .SiteURL }} 的帐号。" + "translation": "多因素认证已添加到您在 {{ .SiteURL }} 的账号。" }, { "id": "api.templates.mfa_activated_body.title", - "translation": "多重验证已添加" + "translation": "多因素认证已添加" }, { "id": "api.templates.mfa_change_subject", - "translation": "[{{ .SiteName }}] 您的多重验证已更新" + "translation": "[{{ .SiteName }}] 您的多因素认证已更新" }, { "id": "api.templates.mfa_deactivated_body.info", - "translation": "多重验证已从您在 {{ .SiteURL }} 的帐号移除。" + "translation": "多因素认证已从您在 {{ .SiteURL }} 的账号移除。" }, { "id": "api.templates.mfa_deactivated_body.title", - "translation": "多重验证已移除" + "translation": "多因素认证已移除" }, { "id": "api.templates.password_change_body.info", @@ -1839,7 +1839,7 @@ }, { "id": "api.templates.signin_change_email.body.info", - "translation": "你已经更新您在 {{ .SiteName }} 的登录方法到 {{.Method}}。" + "translation": "您已经更新您在 {{ .SiteName }} 的登录方法到 {{.Method}}。" }, { "id": "api.templates.signin_change_email.body.method_email", @@ -1851,19 +1851,19 @@ }, { "id": "api.templates.signin_change_email.subject", - "translation": "[{{ .SiteName }}] 您的登入方式已更新" + "translation": "[{{ .SiteName }}] 您的登录方式已更新" }, { "id": "api.templates.user_access_token_body.info", - "translation": "个人访问令牌添加到了您在 {{ .SiteURL }} 的帐号。它们可以用来以您的帐号访问 {{.SiteName}}。" + "translation": "个人访问令牌添加到了您在 {{ .SiteURL }} 的账号。它们可以用来以您的账号访问 {{.SiteName}}。" }, { "id": "api.templates.user_access_token_body.title", - "translation": "已添加用个人访问令牌到您的帐号" + "translation": "已向您的账号添加个人访问令牌" }, { "id": "api.templates.user_access_token_subject", - "translation": "[{{ .SiteName }}] 已添加个人访问令牌到您的帐号" + "translation": "[{{ .SiteName }}] 已向您的账号添加个人访问令牌" }, { "id": "api.templates.username_change_body.info", @@ -1883,15 +1883,15 @@ }, { "id": "api.templates.verify_body.info", - "translation": "该电子邮件地址被用于创建 Mattermost 帐户。" + "translation": "此邮箱地址用于创建 Mattermost 账号。" }, { "id": "api.templates.verify_body.title", - "translation": "验证您的电子邮箱地址" + "translation": "验证您的邮箱地址" }, { "id": "api.templates.verify_subject", - "translation": "[{{ .SiteName }}] 电子邮件地址验证" + "translation": "[{{ .SiteName }}] 邮箱地址验证" }, { "id": "api.templates.welcome_body.app_download_info", @@ -1903,7 +1903,7 @@ }, { "id": "api.templates.welcome_body.info", - "translation": "该电子邮件地址被用于创建 Mattermost 帐户。" + "translation": "此邮箱地址用于创建 Mattermost 账号。" }, { "id": "api.templates.welcome_body.title", @@ -1915,23 +1915,23 @@ }, { "id": "api.user.activate_mfa.email_and_ldap_only.app_error", - "translation": "此帐户类型不支持多重验证。" + "translation": "此账号类型不支持多因素认证。" }, { "id": "api.user.add_direct_channels_and_forget.failed.error", - "translation": "添加用户直接频道偏好设定失败 user_id={{.UserId}}, team_id={{.TeamId}}, err={{.Error}}" + "translation": "添加用户私信频道偏好设置失败:user_id={{.UserId}}, team_id={{.TeamId}}, err={{.Error}}" }, { "id": "api.user.authorize_oauth_user.bad_response.app_error", - "translation": "令牌请求得到错误的回复。" + "translation": "令牌请求收到的响应错误。" }, { "id": "api.user.authorize_oauth_user.bad_token.app_error", - "translation": "错误的令牌类型。" + "translation": "令牌类型错误。" }, { "id": "api.user.authorize_oauth_user.invalid_state.app_error", - "translation": "无效状态" + "translation": "状态无效" }, { "id": "api.user.authorize_oauth_user.missing.app_error", @@ -1939,7 +1939,7 @@ }, { "id": "api.user.authorize_oauth_user.response.app_error", - "translation": "从 OAuth 服务提供者收到无效的回复。" + "translation": "从 OAuth 服务提供者收到的响应无效。" }, { "id": "api.user.authorize_oauth_user.service.app_error", @@ -1951,23 +1951,23 @@ }, { "id": "api.user.authorize_oauth_user.unsupported.app_error", - "translation": "{{.Service}} 通过 OAuth 2.0 的单点登入在此服务器上不可用。" + "translation": "{{.Service}} 通过 OAuth 2.0 的单点登录在此服务器上不可用。" }, { "id": "api.user.check_user_login_attempts.too_many.app_error", - "translation": "您的账号因为多次的密码尝试而被锁定。请重设您的密码。" + "translation": "您的账号因多次密码尝试而被锁定。请重置密码。" }, { "id": "api.user.check_user_mfa.bad_code.app_error", - "translation": "无效的多重验证令牌。" + "translation": "多因素认证令牌无效。" }, { "id": "api.user.check_user_password.invalid.app_error", - "translation": "登录失败,无效的密码。" + "translation": "登录失败,密码无效。" }, { "id": "api.user.complete_switch_with_oauth.blank_email.app_error", - "translation": "空白电子邮件。" + "translation": "邮箱地址为空。" }, { "id": "api.user.complete_switch_with_oauth.parse.app_error", @@ -1979,7 +1979,7 @@ }, { "id": "api.user.create_oauth_user.already_attached.app_error", - "translation": "已经有一个电子邮件帐号使用了不同于{{.Service}}的方法进行登录。请使用{{.Auth}}进行登录。" + "translation": "已有一个邮箱账号使用不同于 {{.Service}} 的方法登录。请使用 {{.Auth}} 登录。" }, { "id": "api.user.create_oauth_user.create.app_error", @@ -1999,7 +1999,7 @@ }, { "id": "api.user.create_user.accepted_domain.app_error", - "translation": "您提供的电子邮件不属于允许的域名。请与您的管理员联系或使用一个不同的电子邮件注册。" + "translation": "您提供的邮箱地址不属于允许的域名。请联系管理员或使用其他邮箱地址注册。" }, { "id": "api.user.create_user.disabled.app_error", @@ -2007,11 +2007,11 @@ }, { "id": "api.user.create_user.no_open_server", - "translation": "这个服务员不允许注册。请与管理员联系,获取邀请。" + "translation": "此服务器不允许注册。请联系管理员获取邀请。" }, { "id": "api.user.create_user.signup_email_disabled.app_error", - "translation": "已停用电子邮件注册。" + "translation": "邮箱注册已停用。" }, { "id": "api.user.create_user.signup_link_expired.app_error", @@ -2019,7 +2019,7 @@ }, { "id": "api.user.create_user.signup_link_invalid.app_error", - "translation": "无效的注册链接。" + "translation": "注册链接无效。" }, { "id": "api.user.email_to_ldap.not_available.app_error", @@ -2039,7 +2039,7 @@ }, { "id": "api.user.ldap_to_email.not_ldap_account.app_error", - "translation": "此账户没有使用 AD/LDAP。" + "translation": "此账号没有使用 AD/LDAP。" }, { "id": "api.user.login.blank_pwd.app_error", @@ -2047,15 +2047,15 @@ }, { "id": "api.user.login.bot_login_forbidden.app_error", - "translation": "禁止机器人登入。" + "translation": "禁止机器人登录。" }, { "id": "api.user.login.inactive.app_error", - "translation": "您的帐号因被停用而登入失败。请联系系统管理员。" + "translation": "您的账号因被停用而登录失败。请联系系统管理员。" }, { "id": "api.user.login.not_verified.app_error", - "translation": "登录失败,因为电子邮件地址没有被验证。" + "translation": "登录失败,因为邮箱地址尚未验证。" }, { "id": "api.user.login.use_auth_service.app_error", @@ -2063,7 +2063,7 @@ }, { "id": "api.user.login_by_oauth.bot_login_forbidden.app_error", - "translation": "禁止机器人登入。" + "translation": "禁止机器人登录。" }, { "id": "api.user.login_by_oauth.not_available.app_error", @@ -2079,7 +2079,7 @@ }, { "id": "api.user.oauth_to_email.context.app_error", - "translation": "更新密码失败因为 user_id 不匹配用户ID。" + "translation": "更新密码失败,因为 user_id 与用户 ID 不匹配。" }, { "id": "api.user.oauth_to_email.not_available.app_error", @@ -2087,11 +2087,11 @@ }, { "id": "api.user.reset_password.broken_token.app_error", - "translation": "无效的重置密码链接。" + "translation": "重置密码链接无效。" }, { "id": "api.user.reset_password.invalid_link.app_error", - "translation": "无效的重置密码链接。" + "translation": "重置密码链接无效。" }, { "id": "api.user.reset_password.link_expired.app_error", @@ -2103,7 +2103,7 @@ }, { "id": "api.user.reset_password.sso.app_error", - "translation": "无法重置 SSO 帐号密码。" + "translation": "无法重置 SSO 账号密码。" }, { "id": "api.user.saml.not_available.app_error", @@ -2111,31 +2111,31 @@ }, { "id": "api.user.send_deactivate_email_and_forget.failed.error", - "translation": "无法发送帐号注销邮件" + "translation": "无法发送账号停用邮件" }, { "id": "api.user.send_email_change_verify_email_and_forget.error", - "translation": "无法发送电子邮件更改验证电子邮件" + "translation": "无法发送邮箱变更验证邮件" }, { "id": "api.user.send_password_reset.send.app_error", - "translation": "无法发送密码重置电子邮件。" + "translation": "无法发送密码重置邮件。" }, { "id": "api.user.send_password_reset.sso.app_error", - "translation": "无法重置 SSO 帐号密码。" + "translation": "无法重置 SSO 账号密码。" }, { "id": "api.user.send_sign_in_change_email_and_forget.error", - "translation": "无法发送更新密码电子邮件" + "translation": "无法发送登录方式更新邮件" }, { "id": "api.user.send_verify_email_and_forget.failed.error", - "translation": "无法发送验证电子邮件" + "translation": "无法发送验证邮件" }, { "id": "api.user.update_active.not_enable.app_error", - "translation": "您不能注销自己因为此功能未开启。请联系您的系统管理员。" + "translation": "您不能停用自己,因为此功能未开启。请联系系统管理员。" }, { "id": "api.user.update_active.permissions.app_error", @@ -2167,7 +2167,7 @@ }, { "id": "api.user.update_password.valid_account.app_error", - "translation": "更新密码失败,因为无法找到有效的帐户。" + "translation": "更新密码失败,因为无法找到有效的账号。" }, { "id": "api.user.upload_profile_user.array.app_error", @@ -2211,7 +2211,7 @@ }, { "id": "api.user.verify_email.broken_token.app_error", - "translation": "无效的验证邮件令牌类型。" + "translation": "验证邮件令牌类型无效。" }, { "id": "api.user.verify_email.link_expired.app_error", @@ -2223,7 +2223,7 @@ }, { "id": "api.web_socket.connect.upgrade.app_error", - "translation": "URL 由于 CORS 而被阻止。Url: {{.BlockedOrigin}}" + "translation": "URL 由于 CORS 而被阻止。URL:{{.BlockedOrigin}}" }, { "id": "api.web_socket_router.bad_action.app_error", @@ -2231,27 +2231,27 @@ }, { "id": "api.web_socket_router.bad_seq.app_error", - "translation": "无效的 WebSocket 消息顺序。" + "translation": "WebSocket 消息顺序无效。" }, { "id": "api.web_socket_router.no_action.app_error", - "translation": "无 websocket 操作。" + "translation": "无 WebSocket 操作。" }, { "id": "api.web_socket_router.not_authenticated.app_error", - "translation": "未经授权的 WebSocket 连接。请登入后再试。" + "translation": "未经授权的 WebSocket 连接。请登录后再试。" }, { "id": "api.webhook.create_outgoing.intersect.app_error", - "translation": "同一频道的传出 webhooks 不能具有同样的触发词/回调URLs。" + "translation": "同一频道的传出 Webhook 不能具有同样的触发词/回调 URL。" }, { "id": "api.webhook.create_outgoing.not_open.app_error", - "translation": "只有公共频道可以创建传出 webhooks。" + "translation": "只有公共频道可以创建传出 Webhook。" }, { "id": "api.webhook.create_outgoing.permissions.app_error", - "translation": "无效的创建传出的 webhook 权限。" + "translation": "创建传出 Webhook 权限无效。" }, { "id": "api.webhook.create_outgoing.triggers.app_error", @@ -2259,15 +2259,15 @@ }, { "id": "api.webhook.team_mismatch.app_error", - "translation": "无法跨团队更新 webhook。" + "translation": "无法跨团队更新 Webhook。" }, { "id": "api.webhook.update_outgoing.intersect.app_error", - "translation": "同一频道的传出 webhooks 不能具有同样的触发词/回调URLs。" + "translation": "同一频道的传出 Webhook 不能具有同样的触发词/回调 URL。" }, { "id": "api.websocket_handler.invalid_param.app_error", - "translation": "无效的 {{.Name}} 参数。" + "translation": "{{.Name}} 参数无效。" }, { "id": "app.admin.test_email.failure", @@ -2327,7 +2327,7 @@ }, { "id": "app.import.bulk_import.unsupported_version.error", - "translation": "数据导入文件缺少或有错误的版本。请确定版本是导入文件中的第一个对象后再尝试。" + "translation": "数据导入文件缺少版本或版本错误。请确认版本是导入文件中的第一个对象后重试。" }, { "id": "app.import.emoji.bad_file.error", @@ -2335,7 +2335,7 @@ }, { "id": "app.import.import_channel.scheme_deleted.error", - "translation": "无法设定频道使用已删除的方案。" + "translation": "无法将频道设置为使用已删除的方案。" }, { "id": "app.import.import_channel.scheme_wrong_scope.error", @@ -2347,7 +2347,7 @@ }, { "id": "app.import.import_direct_channel.create_direct_channel.error", - "translation": "船舰私信组频道失败" + "translation": "创建私信频道失败" }, { "id": "app.import.import_direct_channel.create_group_channel.error", @@ -2363,43 +2363,43 @@ }, { "id": "app.import.import_direct_post.create_group_channel.error", - "translation": "获取组频道失败" + "translation": "获取群组消息频道失败" }, { "id": "app.import.import_line.null_channel.error", - "translation": "导入数据行有类型 \"channel\" 但频道对象是无。" + "translation": "导入数据行类型为 \"channel\",但频道对象为空。" }, { "id": "app.import.import_line.null_direct_channel.error", - "translation": "导入数据行有类型 \"direct_channel\" 但 direct_channel 对象为 null。" + "translation": "导入数据行类型为 \"direct_channel\",但 direct_channel 对象为空。" }, { "id": "app.import.import_line.null_direct_post.error", - "translation": "导入数据行有类型 \"direct_post\" 但 direct_post 对象为 null。" + "translation": "导入数据行类型为 \"direct_post\",但 direct_post 对象为空。" }, { "id": "app.import.import_line.null_emoji.error", - "translation": "导入数据行有类型 \"表情符\" 但消息对象为 null。" + "translation": "导入数据行类型为 \"emoji\",但表情符对象为空。" }, { "id": "app.import.import_line.null_post.error", - "translation": "导入数据行有类型 \"post\" 但消息对象是无。" + "translation": "导入数据行类型为 \"post\",但消息对象为空。" }, { "id": "app.import.import_line.null_scheme.error", - "translation": "导入数据行有类型“方案”但方案对象是 null。" + "translation": "导入数据行类型为 \"scheme\",但方案对象为空。" }, { "id": "app.import.import_line.null_team.error", - "translation": "导入数据行有类型“team”但团队对象是 null。" + "translation": "导入数据行类型为 \"team\",但团队对象为空。" }, { "id": "app.import.import_line.null_user.error", - "translation": "导入数据行有类型“user”但用户对象是 null。" + "translation": "导入数据行类型为 \"user\",但用户对象为空。" }, { "id": "app.import.import_line.unknown_line_type.error", - "translation": "导入数据行有无效的类型“{{.Type}}”。" + "translation": "导入数据行的类型“{{.Type}}”无效。" }, { "id": "app.import.import_post.channel_not_found.error", @@ -2415,7 +2415,7 @@ }, { "id": "app.import.import_scheme.scope_change.error", - "translation": "批量导入器无法更改现有的方案的范围。" + "translation": "批量导入器无法更改现有方案的范围。" }, { "id": "app.import.import_team.scheme_deleted.error", @@ -2455,7 +2455,7 @@ }, { "id": "app.import.validate_channel_import_data.name_missing.error", - "translation": "缺少频道必须属性:name" + "translation": "缺少频道必需属性:name" }, { "id": "app.import.validate_channel_import_data.purpose_length.error", @@ -2463,19 +2463,19 @@ }, { "id": "app.import.validate_channel_import_data.scheme_invalid.error", - "translation": "无效的频道方案名。" + "translation": "频道方案名无效。" }, { "id": "app.import.validate_channel_import_data.team_missing.error", - "translation": "缺少频道必须属性:team" + "translation": "缺少频道必需属性:team" }, { "id": "app.import.validate_channel_import_data.type_invalid.error", - "translation": "无效频道类型。" + "translation": "频道类型无效。" }, { "id": "app.import.validate_channel_import_data.type_missing.error", - "translation": "缺少频道必须属性:type。" + "translation": "缺少频道必需属性:type。" }, { "id": "app.import.validate_direct_channel_import_data.header_length.error", @@ -2483,7 +2483,7 @@ }, { "id": "app.import.validate_direct_channel_import_data.members_required.error", - "translation": "缺少私信频道必须属性:members" + "translation": "缺少私信频道必需属性:members" }, { "id": "app.import.validate_direct_channel_import_data.members_too_few.error", @@ -2499,7 +2499,7 @@ }, { "id": "app.import.validate_direct_post_import_data.channel_members_required.error", - "translation": "缺少私信消息必须属性:channel_members" + "translation": "缺少私信消息必需属性:channel_members" }, { "id": "app.import.validate_direct_post_import_data.channel_members_too_few.error", @@ -2511,11 +2511,11 @@ }, { "id": "app.import.validate_direct_post_import_data.create_at_missing.error", - "translation": "缺少私信消息必须属性:create_at" + "translation": "缺少私信消息必需属性:create_at" }, { "id": "app.import.validate_direct_post_import_data.create_at_zero.error", - "translation": "CreateAt 比如大于 0" + "translation": "CreateAt 必须大于 0。" }, { "id": "app.import.validate_direct_post_import_data.message_length.error", @@ -2523,7 +2523,7 @@ }, { "id": "app.import.validate_direct_post_import_data.message_missing.error", - "translation": "缺少私信必须属性:message" + "translation": "缺少私信消息必需属性:message" }, { "id": "app.import.validate_direct_post_import_data.unknown_flagger.error", @@ -2531,7 +2531,7 @@ }, { "id": "app.import.validate_direct_post_import_data.user_missing.error", - "translation": "缺少私信必须属性:user" + "translation": "缺少私信消息必需属性:user" }, { "id": "app.import.validate_emoji_import_data.empty.error", @@ -2539,19 +2539,19 @@ }, { "id": "app.import.validate_emoji_import_data.image_missing.error", - "translation": "导入表情符图片栏为空。" + "translation": "导入表情符图片字段为空。" }, { "id": "app.import.validate_emoji_import_data.name_missing.error", - "translation": "导入表情符名栏为空。" + "translation": "导入表情符名称字段为空。" }, { "id": "app.import.validate_post_import_data.channel_missing.error", - "translation": "缺少消息必须属性:Channel。" + "translation": "缺少消息必需属性:Channel。" }, { "id": "app.import.validate_post_import_data.create_at_missing.error", - "translation": "缺少消息必须属性:create_at。" + "translation": "缺少消息必需属性:create_at。" }, { "id": "app.import.validate_post_import_data.create_at_zero.error", @@ -2563,43 +2563,43 @@ }, { "id": "app.import.validate_post_import_data.message_missing.error", - "translation": "缺少消息必须属性:Message。" + "translation": "缺少消息必需属性:Message。" }, { "id": "app.import.validate_post_import_data.team_missing.error", - "translation": "缺少消息必须属性:Team。" + "translation": "缺少消息必需属性:Team。" }, { "id": "app.import.validate_post_import_data.user_missing.error", - "translation": "缺少消息必须属性:User。" + "translation": "缺少消息必需属性:User。" }, { "id": "app.import.validate_reaction_import_data.create_at_before_parent.error", - "translation": "互动 CreateAt 属性必须大于父消息 CreateAt。" + "translation": "表情回应 CreateAt 属性必须大于父消息 CreateAt。" }, { "id": "app.import.validate_reaction_import_data.create_at_missing.error", - "translation": "缺少互动必须属性:create_at。" + "translation": "缺少表情回应必需属性:create_at。" }, { "id": "app.import.validate_reaction_import_data.create_at_zero.error", - "translation": "互动 CreateAt 属性不能为零。" + "translation": "表情回应 CreateAt 属性不能为零。" }, { "id": "app.import.validate_reaction_import_data.emoji_name_length.error", - "translation": "互动 EmojiName 属性超过允许的最大长度。" + "translation": "表情回应 EmojiName 属性超过允许的最大长度。" }, { "id": "app.import.validate_reaction_import_data.emoji_name_missing.error", - "translation": "缺少互动必须属性:User。" + "translation": "缺少表情回应必需属性:emoji_name。" }, { "id": "app.import.validate_reaction_import_data.user_missing.error", - "translation": "缺少互动必须属性:User。" + "translation": "缺少表情回应必需属性:user。" }, { "id": "app.import.validate_reply_import_data.create_at_missing.error", - "translation": "缺少回复必须属性:create_at。" + "translation": "缺少回复必需属性:create_at。" }, { "id": "app.import.validate_reply_import_data.create_at_zero.error", @@ -2611,39 +2611,39 @@ }, { "id": "app.import.validate_reply_import_data.message_missing.error", - "translation": "缺少回复必须属性:Message。" + "translation": "缺少回复必需属性:Message。" }, { "id": "app.import.validate_reply_import_data.user_missing.error", - "translation": "缺少回复必须属性:User。" + "translation": "缺少回复必需属性:User。" }, { "id": "app.import.validate_role_import_data.description_invalid.error", - "translation": "无效的角色描述。" + "translation": "角色描述无效。" }, { "id": "app.import.validate_role_import_data.display_name_invalid.error", - "translation": "无效的角色显示名。" + "translation": "角色显示名无效。" }, { "id": "app.import.validate_role_import_data.invalid_permission.error", - "translation": "无效的角色权限。" + "translation": "角色权限无效。" }, { "id": "app.import.validate_role_import_data.name_invalid.error", - "translation": "无效的角色名。" + "translation": "角色名无效。" }, { "id": "app.import.validate_scheme_import_data.description_invalid.error", - "translation": "无效的方案描述。" + "translation": "方案描述无效。" }, { "id": "app.import.validate_scheme_import_data.display_name_invalid.error", - "translation": "无效的方案显示名。" + "translation": "方案显示名无效。" }, { "id": "app.import.validate_scheme_import_data.name_invalid.error", - "translation": "无效的方案名。" + "translation": "方案名无效。" }, { "id": "app.import.validate_scheme_import_data.null_scope.error", @@ -2655,7 +2655,7 @@ }, { "id": "app.import.validate_scheme_import_data.wrong_roles_for_scope.error", - "translation": "错误的角色提供给了拥有此范围的方案。" + "translation": "角色提供给了拥有此范围的方案错误。" }, { "id": "app.import.validate_team_import_data.description_length.error", @@ -2667,7 +2667,7 @@ }, { "id": "app.import.validate_team_import_data.display_name_missing.error", - "translation": "缺少团队必须属性:display_name。" + "translation": "缺少团队必需属性:display_name。" }, { "id": "app.import.validate_team_import_data.name_characters.error", @@ -2679,7 +2679,7 @@ }, { "id": "app.import.validate_team_import_data.name_missing.error", - "translation": "缺少频道必须属性:name。" + "translation": "缺少团队必需属性:name。" }, { "id": "app.import.validate_team_import_data.name_reserved.error", @@ -2687,15 +2687,15 @@ }, { "id": "app.import.validate_team_import_data.scheme_invalid.error", - "translation": "无效的团队方案名。" + "translation": "团队方案名无效。" }, { "id": "app.import.validate_team_import_data.type_invalid.error", - "translation": "无效团队类型。" + "translation": "团队类型无效。" }, { "id": "app.import.validate_team_import_data.type_missing.error", - "translation": "缺少频道必须属性:type。" + "translation": "缺少团队必需属性:type。" }, { "id": "app.import.validate_user_channels_import_data.channel_name_missing.error", @@ -2703,15 +2703,15 @@ }, { "id": "app.import.validate_user_channels_import_data.invalid_notify_props_desktop.error", - "translation": "用户的频道身份的桌面 NotifyProps 无效。" + "translation": "用户频道成员身份的桌面 NotifyProps 无效。" }, { "id": "app.import.validate_user_channels_import_data.invalid_notify_props_mark_unread.error", - "translation": "用户的频道身份的 MarkUnread NotifyProps 无效。" + "translation": "用户频道成员身份的 MarkUnread NotifyProps 无效。" }, { "id": "app.import.validate_user_channels_import_data.invalid_notify_props_mobile.error", - "translation": "用户的频道身份的移动设备 NotifyProps 无效。" + "translation": "用户频道成员身份的移动设备 NotifyProps 无效。" }, { "id": "app.import.validate_user_channels_import_data.invalid_roles.error", @@ -2727,11 +2727,11 @@ }, { "id": "app.import.validate_user_import_data.email_length.error", - "translation": "用户邮箱地址拥有无效长度。" + "translation": "用户邮箱地址长度无效。" }, { "id": "app.import.validate_user_import_data.email_missing.error", - "translation": "缺少用户必须属性:email。" + "translation": "缺少用户必需属性:email。" }, { "id": "app.import.validate_user_import_data.first_name_length.error", @@ -2747,11 +2747,11 @@ }, { "id": "app.import.validate_user_import_data.notify_props_channel_trigger_invalid.error", - "translation": "无效用户频道触发 Notify Prop。" + "translation": "用户频道 Notify Prop 触发器无效。" }, { "id": "app.import.validate_user_import_data.notify_props_comments_trigger_invalid.error", - "translation": "无效的用户 Comments Prop 值。" + "translation": "用户 Comments Prop 值无效。" }, { "id": "app.import.validate_user_import_data.notify_props_desktop_invalid.error", @@ -2767,7 +2767,7 @@ }, { "id": "app.import.validate_user_import_data.notify_props_mobile_invalid.error", - "translation": "无效用户移动 Notify Prop 值。" + "translation": "用户移动 Notify Prop 值无效。" }, { "id": "app.import.validate_user_import_data.notify_props_mobile_push_status_invalid.error", @@ -2775,7 +2775,7 @@ }, { "id": "app.import.validate_user_import_data.password_length.error", - "translation": "无效的用户密码长度。" + "translation": "用户密码长度无效。" }, { "id": "app.import.validate_user_import_data.position_length.error", @@ -2783,19 +2783,19 @@ }, { "id": "app.import.validate_user_import_data.profile_image.error", - "translation": "无效个人资料图片。" + "translation": "个人资料图片无效。" }, { "id": "app.import.validate_user_import_data.roles_invalid.error", - "translation": "无效用户角色。" + "translation": "用户角色无效。" }, { "id": "app.import.validate_user_import_data.username_invalid.error", - "translation": "无效的用户名。" + "translation": "用户名无效。" }, { "id": "app.import.validate_user_import_data.username_missing.error", - "translation": "缺少用户必须属性:username。" + "translation": "缺少用户必需属性:username。" }, { "id": "app.import.validate_user_teams_import_data.invalid_roles.error", @@ -2811,11 +2811,11 @@ }, { "id": "app.notification.subject.group_message.full", - "translation": "[{{ .SiteName }}] {{.Year}} 年 {{.Month}} 月 {{.Day}} 日在 {{ .ChannelName}} 中的新组消息" + "translation": "[{{ .SiteName }}] {{.Year}} 年 {{.Month}} 月 {{.Day}} 日在 {{ .ChannelName}} 中的新群组消息" }, { "id": "app.notification.subject.group_message.generic", - "translation": "[{{ .SiteName }}] {{.Year}} 年 {{.Month}} 月 {{.Day}} 日的新组消息" + "translation": "[{{ .SiteName }}] {{.Year}} 年 {{.Month}} 月 {{.Day}} 日的新群组消息" }, { "id": "app.notification.subject.notification.full", @@ -2875,11 +2875,11 @@ }, { "id": "app.plugin.manifest.app_error", - "translation": "找不到提取的插件的清单。" + "translation": "找不到已提取插件的清单。" }, { "id": "app.plugin.mvdir.app_error", - "translation": "无法移动插件从临时目录到最终目录。可能因为已有其他插件使用同样的目录名。" + "translation": "无法将插件从临时目录移动到最终目录。可能已有其他插件使用相同目录名。" }, { "id": "app.plugin.not_installed.app_error", @@ -2903,11 +2903,11 @@ }, { "id": "app.schemes.is_phase_2_migration_completed.not_completed.app_error", - "translation": "API 无法访问因为需要的数据转移未完成。" + "translation": "API 无法访问,因为所需的数据迁移尚未完成。" }, { "id": "app.submit_interactive_dialog.json_error", - "translation": "为互动对话框编码 JSON 时遇到错误。" + "translation": "为交互式对话框编码 JSON 时遇到错误。" }, { "id": "app.system_install_date.parse_int.app_error", @@ -2915,7 +2915,7 @@ }, { "id": "app.team.join_user_to_team.max_accounts.app_error", - "translation": "这个团队已经达到允许的最大帐号数量。请与系统管理员联系以设置更高的限制。" + "translation": "这个团队已经达到允许的最大账号数量。请与系统管理员联系以设置更高的限制。" }, { "id": "app.user_access_token.disabled", @@ -2939,7 +2939,7 @@ }, { "id": "brand.save_brand_image.save_image.app_error", - "translation": "无法写入图片文件到您的文件储存。请检查您的连接后再尝试。" + "translation": "无法将图片文件写入文件存储。请检查连接后重试。" }, { "id": "ent.account_migration.get_all_failed", @@ -2959,7 +2959,7 @@ }, { "id": "ent.compliance.licence_disable.app_error", - "translation": "当前许可证禁用了合规功能。请联系您的系统管理员关于升级您的企业许可证。" + "translation": "当前许可证禁用了合规功能。请联系您的系统管理员,了解如何升级您的企业许可证。" }, { "id": "ent.compliance.run_failed.error", @@ -2971,19 +2971,19 @@ }, { "id": "ent.elasticsearch.aggregator_worker.create_index_job.error", - "translation": "{{.Backend}} 聚合器工作者创建索引任务失败" + "translation": "{{.Backend}} 聚合器工作进程创建索引任务失败" }, { "id": "ent.elasticsearch.aggregator_worker.delete_indexes.error", - "translation": "{{.Backend}} 聚合器工作者删除索引失败" + "translation": "{{.Backend}} 聚合器工作进程删除索引失败" }, { "id": "ent.elasticsearch.aggregator_worker.get_indexes.error", - "translation": "{{.Backend}} 聚合器工作者获取索引失败" + "translation": "{{.Backend}} 聚合器工作进程获取索引失败" }, { "id": "ent.elasticsearch.aggregator_worker.index_job_failed.error", - "translation": "{{.Backend}} 聚合器工作者因索引任务失败而失败" + "translation": "{{.Backend}} 聚合器工作进程因索引任务失败而失败" }, { "id": "ent.elasticsearch.create_client.connect_failed", @@ -3011,11 +3011,11 @@ }, { "id": "ent.elasticsearch.indexer.do_job.parse_end_time.error", - "translation": "{{.Backend}} 索引工作者解析结束时间失败" + "translation": "{{.Backend}} 索引工作进程解析结束时间失败" }, { "id": "ent.elasticsearch.indexer.do_job.parse_start_time.error", - "translation": "{{.Backend}} 索引工作者解析开始时间失败" + "translation": "{{.Backend}} 索引工作进程解析开始时间失败" }, { "id": "ent.elasticsearch.not_started.error", @@ -3047,11 +3047,11 @@ }, { "id": "ent.elasticsearch.test_config.reenter_password", - "translation": "Elasticsearch 服务端网址或用户名已变更。请重新输入 Elasticsearch 密码测试连接。" + "translation": "Elasticsearch 服务器 URL 或用户名已更改。请重新输入 Elasticsearch 密码以测试连接。" }, { "id": "ent.ldap.app_error", - "translation": "ldap 接口为 nil。" + "translation": "LDAP 接口为 nil。" }, { "id": "ent.ldap.create_fail", @@ -3067,11 +3067,11 @@ }, { "id": "ent.ldap.do_login.invalid_password.app_error", - "translation": "无效的密码。" + "translation": "密码无效。" }, { "id": "ent.ldap.do_login.licence_disable.app_error", - "translation": "当前许可证无法使用 AD/LDAP 功能,请联系您的系统管理员关于升级您的企业许可证。" + "translation": "当前许可证无法使用 AD/LDAP 功能,请联系您的系统管理员,了解如何升级您的企业许可证。" }, { "id": "ent.ldap.do_login.matched_to_many_users.app_error", @@ -3111,15 +3111,15 @@ }, { "id": "ent.ldap.validate_filter.app_error", - "translation": "无效的 AD/LDAP 筛选器。" + "translation": "AD/LDAP 筛选器无效。" }, { "id": "ent.ldap_groups.group_search_error", - "translation": "获取 ldap 用户组出错" + "translation": "获取 LDAP 用户组出错" }, { "id": "ent.ldap_groups.groups_search_error", - "translation": "获取 ldap 用户组出错" + "translation": "获取 LDAP 用户组出错" }, { "id": "ent.ldap_groups.members_of_group_error", @@ -3143,7 +3143,7 @@ }, { "id": "ent.migration.migratetosaml.email_already_used_by_other_user", - "translation": "电子邮箱地址已被其他 SAML 用户使用。" + "translation": "邮箱地址已被其他 SAML 用户使用。" }, { "id": "ent.migration.migratetosaml.user_not_found_in_users_mapping_file", @@ -3155,7 +3155,7 @@ }, { "id": "ent.saml.attribute.app_error", - "translation": "SAML 登入因不正确属性而失败。请联系您的系统管理员。" + "translation": "SAML 登录因属性不正确而失败。请联系您的系统管理员。" }, { "id": "ent.saml.build_request.app_error", @@ -3163,15 +3163,15 @@ }, { "id": "ent.saml.configure.encryption_not_enabled.app_error", - "translation": "SAML 登入因加密未开启而失败。请联系您的系统管理员。" + "translation": "SAML 登录因加密未开启而失败。请联系您的系统管理员。" }, { "id": "ent.saml.configure.load_private_key.app_error", - "translation": "SAML登录失败,因为服务提供者私钥没有被发现。请与系统管理员联系。" + "translation": "SAML 登录失败,因为未找到服务提供者私钥。请联系系统管理员。" }, { "id": "ent.saml.configure.not_encrypted_response.app_error", - "translation": "SAML登录因身份服务提供者回应未加密而失败。请联系您的系统管理员。" + "translation": "SAML 登录失败,因为身份提供者响应未加密。请联系您的系统管理员。" }, { "id": "ent.saml.do_login.empty_response.app_error", @@ -3195,27 +3195,27 @@ }, { "id": "interactive_message.decode_trigger_id.base64_decode_failed", - "translation": "无法为互动对话框解码触发 ID 的 base64。" + "translation": "无法为交互式对话框解码触发 ID 的 base64。" }, { "id": "interactive_message.decode_trigger_id.expired", - "translation": "互动对话框的触发 ID 已过期。触发 ID 最多有效 {{.Duration}}。" + "translation": "交互式对话框的触发 ID 已过期。触发 ID 最多有效 {{.Duration}}。" }, { "id": "interactive_message.decode_trigger_id.missing_data", - "translation": "缺少互动对话框的触发 ID 必须的数据。" + "translation": "缺少交互式对话框触发 ID 所需的数据。" }, { "id": "interactive_message.decode_trigger_id.signature_decode_failed", - "translation": "无法为互动对话框解码触发 ID 的 base64 签名。" + "translation": "无法为交互式对话框解码触发 ID 的 base64 签名。" }, { "id": "interactive_message.decode_trigger_id.verify_signature_failed", - "translation": "无法验证互动对话框解码触发 ID 的签名。" + "translation": "无法验证交互式对话框解码触发 ID 的签名。" }, { "id": "interactive_message.generate_trigger_id.signing_failed", - "translation": "无法为互动对话框签名生成的触发 ID。" + "translation": "无法为生成的交互式对话框触发 ID 签名。" }, { "id": "jobs.request_cancellation.status.error", @@ -3227,7 +3227,7 @@ }, { "id": "manaultesting.manual_test.parse.app_error", - "translation": "无法解析网址。" + "translation": "无法解析 URL。" }, { "id": "manaultesting.test_autolink.unable.app_error", @@ -3239,7 +3239,7 @@ }, { "id": "mfa.activate.bad_token.app_error", - "translation": "无效的多重验证令牌。" + "translation": "多因素认证令牌无效。" }, { "id": "mfa.generate_qr_code.create_code.app_error", @@ -3247,11 +3247,11 @@ }, { "id": "mfa.mfa_disabled.app_error", - "translation": "多重验证已在此服务器停用。" + "translation": "此服务器已停用多因素认证。" }, { "id": "mfa.validate_token.authenticate.app_error", - "translation": "无效的多重验证令牌。" + "translation": "多因素认证令牌无效。" }, { "id": "migrations.worker.run_advanced_permissions_phase_2_migration.invalid_progress", @@ -3263,31 +3263,31 @@ }, { "id": "model.access.is_valid.access_token.app_error", - "translation": "无效的访问令牌。" + "translation": "访问令牌无效。" }, { "id": "model.access.is_valid.client_id.app_error", - "translation": "无效客户端id。" + "translation": "客户端 ID 无效。" }, { "id": "model.access.is_valid.redirect_uri.app_error", - "translation": "无效重定向网址。" + "translation": "重定向 URL 无效。" }, { "id": "model.access.is_valid.refresh_token.app_error", - "translation": "无效的刷新令牌。" + "translation": "刷新令牌无效。" }, { "id": "model.access.is_valid.user_id.app_error", - "translation": "无效的用户 id。" + "translation": "用户 ID 无效。" }, { "id": "model.authorize.is_valid.auth_code.app_error", - "translation": "无效的授权码。" + "translation": "授权码无效。" }, { "id": "model.authorize.is_valid.client_id.app_error", - "translation": "无效客户端id。" + "translation": "客户端 ID 无效。" }, { "id": "model.authorize.is_valid.create_at.app_error", @@ -3299,47 +3299,47 @@ }, { "id": "model.authorize.is_valid.redirect_uri.app_error", - "translation": "无效重定向网址。" + "translation": "重定向 URL 无效。" }, { "id": "model.authorize.is_valid.response_type.app_error", - "translation": "无效的响应类型。" + "translation": "响应类型无效。" }, { "id": "model.authorize.is_valid.scope.app_error", - "translation": "无效的范围。" + "translation": "范围无效。" }, { "id": "model.authorize.is_valid.state.app_error", - "translation": "无效的状态。" + "translation": "状态无效。" }, { "id": "model.authorize.is_valid.user_id.app_error", - "translation": "无效的用户 id。" + "translation": "用户 ID 无效。" }, { "id": "model.bot.is_valid.create_at.app_error", - "translation": "无效的创建日期。" + "translation": "创建日期无效。" }, { "id": "model.bot.is_valid.creator_id.app_error", - "translation": "无效创建者 id。" + "translation": "创建者 ID 无效。" }, { "id": "model.bot.is_valid.description.app_error", - "translation": "无效的描述。" + "translation": "描述无效。" }, { "id": "model.bot.is_valid.update_at.app_error", - "translation": "无效的更新于。" + "translation": "更新于无效。" }, { "id": "model.bot.is_valid.user_id.app_error", - "translation": "无效的用户 id。" + "translation": "用户 ID 无效。" }, { "id": "model.bot.is_valid.username.app_error", - "translation": "无效的用户名。" + "translation": "用户名无效。" }, { "id": "model.channel.is_valid.create_at.app_error", @@ -3347,27 +3347,27 @@ }, { "id": "model.channel.is_valid.creator_id.app_error", - "translation": "无效创建者 id。" + "translation": "创建者 ID 无效。" }, { "id": "model.channel.is_valid.display_name.app_error", - "translation": "无效的显示名。" + "translation": "显示名无效。" }, { "id": "model.channel.is_valid.header.app_error", - "translation": "无效的标题。" + "translation": "标题无效。" }, { "id": "model.channel.is_valid.id.app_error", - "translation": "无效的 Id。" + "translation": "ID 无效。" }, { "id": "model.channel.is_valid.purpose.app_error", - "translation": "无效的用途。" + "translation": "用途无效。" }, { "id": "model.channel.is_valid.type.app_error", - "translation": "无效的类型。" + "translation": "频道类型无效。" }, { "id": "model.channel.is_valid.update_at.app_error", @@ -3375,55 +3375,55 @@ }, { "id": "model.channel_member.is_valid.channel_id.app_error", - "translation": "无效的频道 id。" + "translation": "频道 ID 无效。" }, { "id": "model.channel_member.is_valid.email_value.app_error", - "translation": "无效的电子邮件通知值。" + "translation": "邮件通知值无效。" }, { "id": "model.channel_member.is_valid.ignore_channel_mentions_value.app_error", - "translation": "无效的忽略频道提及状态。" + "translation": "忽略频道提及状态无效。" }, { "id": "model.channel_member.is_valid.notify_level.app_error", - "translation": "无效的通知级别。" + "translation": "通知级别无效。" }, { "id": "model.channel_member.is_valid.push_level.app_error", - "translation": "无效的推送通知等级。" + "translation": "推送通知等级无效。" }, { "id": "model.channel_member.is_valid.unread_level.app_error", - "translation": "无效的未读标记级别。" + "translation": "未读标记级别无效。" }, { "id": "model.channel_member.is_valid.user_id.app_error", - "translation": "无效的用户 id。" + "translation": "用户 ID 无效。" }, { "id": "model.cluster.is_valid.create_at.app_error", - "translation": "必须设定 CreateAt。" + "translation": "必须设置 CreateAt。" }, { "id": "model.cluster.is_valid.hostname.app_error", - "translation": "必须设定 Hostname。" + "translation": "必须设置 Hostname。" }, { "id": "model.cluster.is_valid.id.app_error", - "translation": "无效的 Id。" + "translation": "ID 无效。" }, { "id": "model.cluster.is_valid.last_ping_at.app_error", - "translation": "必须设定 LastPingAt。" + "translation": "必须设置 LastPingAt。" }, { "id": "model.cluster.is_valid.name.app_error", - "translation": "必须设定 ClusterName。" + "translation": "必须设置 ClusterName。" }, { "id": "model.cluster.is_valid.type.app_error", - "translation": "必须设定类型。" + "translation": "必须设置类型。" }, { "id": "model.command.is_valid.create_at.app_error", @@ -3431,31 +3431,31 @@ }, { "id": "model.command.is_valid.description.app_error", - "translation": "无效的描述。" + "translation": "描述无效。" }, { "id": "model.command.is_valid.display_name.app_error", - "translation": "无效的标题。" + "translation": "标题无效。" }, { "id": "model.command.is_valid.id.app_error", - "translation": "无效的 Id。" + "translation": "ID 无效。" }, { "id": "model.command.is_valid.method.app_error", - "translation": "无效的方式。" + "translation": "方式无效。" }, { "id": "model.command.is_valid.team_id.app_error", - "translation": "无效的团队 ID。" + "translation": "团队 ID 无效。" }, { "id": "model.command.is_valid.token.app_error", - "translation": "无效的令牌。" + "translation": "令牌无效。" }, { "id": "model.command.is_valid.trigger.app_error", - "translation": "无效的触发。" + "translation": "触发无效。" }, { "id": "model.command.is_valid.update_at.app_error", @@ -3463,23 +3463,23 @@ }, { "id": "model.command.is_valid.url.app_error", - "translation": "无效的 URL。" + "translation": "URL 无效。" }, { "id": "model.command.is_valid.url_http.app_error", - "translation": "无效的网址。必须以 http:// 或 https:// 开头的有效网址。" + "translation": "URL 无效。必须是以 http:// 或 https:// 开头的有效 URL。" }, { "id": "model.command.is_valid.user_id.app_error", - "translation": "无效的用户 id。" + "translation": "用户 ID 无效。" }, { "id": "model.command_hook.channel_id.app_error", - "translation": "无效的频道 id。" + "translation": "频道 ID 无效。" }, { "id": "model.command_hook.command_id.app_error", - "translation": "无效的命令 id。" + "translation": "命令 ID 无效。" }, { "id": "model.command_hook.create_at.app_error", @@ -3487,15 +3487,15 @@ }, { "id": "model.command_hook.id.app_error", - "translation": "无效的命令钩子 id。" + "translation": "命令钩子 ID 无效。" }, { "id": "model.command_hook.root_id.app_error", - "translation": "无效的根 id。" + "translation": "根 ID 无效。" }, { "id": "model.command_hook.user_id.app_error", - "translation": "无效的用户 id。" + "translation": "用户 ID 无效。" }, { "id": "model.compliance.is_valid.create_at.app_error", @@ -3503,7 +3503,7 @@ }, { "id": "model.compliance.is_valid.desc.app_error", - "translation": "无效的描述。" + "translation": "描述无效。" }, { "id": "model.compliance.is_valid.end_at.app_error", @@ -3511,7 +3511,7 @@ }, { "id": "model.compliance.is_valid.id.app_error", - "translation": "无效的 Id。" + "translation": "ID 无效。" }, { "id": "model.compliance.is_valid.start_at.app_error", @@ -3527,15 +3527,15 @@ }, { "id": "model.config.is_valid.atmos_camo_image_proxy_options.app_error", - "translation": "无效的 atmos/camo 设置 RemoteImageProxyOptions。必须设为您的共享密钥。" + "translation": "atmos/camo 设置 RemoteImageProxyOptions 无效。必须设为您的共享密钥。" }, { "id": "model.config.is_valid.atmos_camo_image_proxy_url.app_error", - "translation": "无效的 atmos/camo 设置 RemoteImageProxyURL。必须设为您的共享密钥。" + "translation": "atmos/camo 设置 RemoteImageProxyURL 无效。必须设为您的共享密钥。" }, { "id": "model.config.is_valid.cluster_email_batching.app_error", - "translation": "当集群启用时无法启用批量电子邮件。" + "translation": "启用集群时无法启用批量邮件。" }, { "id": "model.config.is_valid.data_retention.deletion_job_start_time.app_error", @@ -3551,7 +3551,7 @@ }, { "id": "model.config.is_valid.display.custom_url_schemes.app_error", - "translation": "无效的自定义 URL 方案 {{.Scheme}}。自定义 URL 方案必须以字母开头并且只能含有字母、数字以及横杠 (-)。" + "translation": "自定义 URL 方案 {{.Scheme}} 无效。自定义 URL 方案必须以字母开头并且只能含有字母、数字以及连字符 (-)。" }, { "id": "model.config.is_valid.elastic_search.aggregate_posts_after_days.app_error", @@ -3579,11 +3579,11 @@ }, { "id": "model.config.is_valid.email_batching_buffer_size.app_error", - "translation": "无效的批量电子邮件缓存大小设定。必须为零或者正整数。" + "translation": "批量邮件缓冲区大小设置无效。必须为零或正整数。" }, { "id": "model.config.is_valid.email_batching_interval.app_error", - "translation": "无效的批量电子邮件间隔设定。必须至少30秒。" + "translation": "批量邮件间隔设置无效。必须至少为 30 秒。" }, { "id": "model.config.is_valid.email_notification_contents_type.app_error", @@ -3595,7 +3595,7 @@ }, { "id": "model.config.is_valid.encrypt_sql.app_error", - "translation": "无效的 SQL 加密秘钥设置。至少32位及以上字符。" + "translation": "SQL 加密秘钥设置无效。至少32位及以上字符。" }, { "id": "model.config.is_valid.file_driver.app_error", @@ -3611,47 +3611,47 @@ }, { "id": "model.config.is_valid.image_proxy_type.app_error", - "translation": "无效的图片代理类型。必须为“local”或“atmos/camo”。" + "translation": "图片代理类型无效。必须为“local”或“atmos/camo”。" }, { "id": "model.config.is_valid.ldap_basedn", - "translation": "AD/LDAP 栏“BaseDN”为必需。" + "translation": "AD/LDAP 字段“BaseDN”为必需。" }, { "id": "model.config.is_valid.ldap_email", - "translation": "AD/LDAP 栏“邮箱属性”为必需。" + "translation": "AD/LDAP 字段“邮箱属性”为必需。" }, { "id": "model.config.is_valid.ldap_id", - "translation": "AD/LDAP 栏“ID 属性”为必需。" + "translation": "AD/LDAP 字段“ID 属性”为必需。" }, { "id": "model.config.is_valid.ldap_login_id", - "translation": "AD/LDAP 栏“登录 ID 属性”为必填。" + "translation": "AD/LDAP 字段“登录 ID 属性”为必填。" }, { "id": "model.config.is_valid.ldap_max_page_size.app_error", - "translation": "无效的最大页面值。" + "translation": "最大页面值无效。" }, { "id": "model.config.is_valid.ldap_security.app_error", - "translation": "无效的 AD/LDAP 安全连接设置,必须为 ‘’,‘TLS’ 或 ‘STARTTLS’。" + "translation": "AD/LDAP 安全连接设置无效,必须为 ‘’,‘TLS’ 或 ‘STARTTLS’。" }, { "id": "model.config.is_valid.ldap_server", - "translation": "AD/LDAP 栏“AD/LDAP 服务器”为必需。" + "translation": "AD/LDAP 字段“AD/LDAP 服务器”为必需。" }, { "id": "model.config.is_valid.ldap_sync_interval.app_error", - "translation": "无效的同步间隔时间。同步时间必须至少一分钟。" + "translation": "同步间隔时间无效。同步时间必须至少一分钟。" }, { "id": "model.config.is_valid.ldap_username", - "translation": "AD/LDAP 栏“用户名属性”为必需。" + "translation": "AD/LDAP 字段“用户名属性”为必需。" }, { "id": "model.config.is_valid.listen_address.app_error", - "translation": "无效的服务设置时监听地址,必须设置此项。" + "translation": "服务设置时监听地址无效,必须设置此项。" }, { "id": "model.config.is_valid.localization.available_locales.app_error", @@ -3659,7 +3659,7 @@ }, { "id": "model.config.is_valid.login_attempts.app_error", - "translation": "无效的最大尝试登录数服务设置。必须是正整数。" + "translation": "最大尝试登录数服务设置无效。必须是正整数。" }, { "id": "model.config.is_valid.max_burst.app_error", @@ -3671,7 +3671,7 @@ }, { "id": "model.config.is_valid.max_file_size.app_error", - "translation": "无效文件设定的最大文件大小。必须为大于零的整数。" + "translation": "最大文件大小设置无效。必须为大于零的整数。" }, { "id": "model.config.is_valid.max_notify_per_channel.app_error", @@ -3711,15 +3711,15 @@ }, { "id": "model.config.is_valid.message_export.global_relay.email_address.app_error", - "translation": "消息导出任务 GlobalRelaySettings.EmailAddress 必须为有效的电子邮箱地址。" + "translation": "消息导出任务 GlobalRelaySettings.EmailAddress 必须为有效的邮箱地址。" }, { "id": "model.config.is_valid.message_export.global_relay.smtp_password.app_error", - "translation": "必须设定消息导出任务 GlobalRelaySettings.SmtpPassword。" + "translation": "必须设置消息导出任务 GlobalRelaySettings.SmtpPassword。" }, { "id": "model.config.is_valid.message_export.global_relay.smtp_username.app_error", - "translation": "必须设定消息导出任务 GlobalRelaySettings.SmtpUsername。" + "translation": "必须设置消息导出任务 GlobalRelaySettings.SmtpUsername。" }, { "id": "model.config.is_valid.password_length.app_error", @@ -3735,11 +3735,11 @@ }, { "id": "model.config.is_valid.read_timeout.app_error", - "translation": "错误的读取超时值。" + "translation": "读取超时值错误。" }, { "id": "model.config.is_valid.restrict_direct_message.app_error", - "translation": "无效的私信限制。必须为 ‘any’ 或 ‘team’。" + "translation": "私信限制无效。必须为 ‘any’ 或 ‘team’。" }, { "id": "model.config.is_valid.saml_assertion_consumer_service_url.app_error", @@ -3747,7 +3747,7 @@ }, { "id": "model.config.is_valid.saml_email_attribute.app_error", - "translation": "无效的电子邮件属性。此属性必须设定。" + "translation": "邮箱属性无效。此属性必须设置。" }, { "id": "model.config.is_valid.saml_idp_cert.app_error", @@ -3759,7 +3759,7 @@ }, { "id": "model.config.is_valid.saml_idp_url.app_error", - "translation": "SAML SSO网址必须为有效URL并且以 http:// 或 https:// 开头。" + "translation": "SAML SSO URL 必须为有效 URL,并以 http:// 或 https:// 开头。" }, { "id": "model.config.is_valid.saml_private_key.app_error", @@ -3771,15 +3771,15 @@ }, { "id": "model.config.is_valid.saml_username_attribute.app_error", - "translation": "无效的用户名属性。此属性必须设定。" + "translation": "用户名属性无效。此属性必须设置。" }, { "id": "model.config.is_valid.site_url.app_error", - "translation": "网站网址必须为以 http:// 或 https:// 开头的有效网址。" + "translation": "站点 URL 必须为以 http:// 或 https:// 开头的有效 URL。" }, { "id": "model.config.is_valid.site_url_email_batching.app_error", - "translation": "当SiteURL未设置时没法启动批量电子邮件。" + "translation": "未设置 SiteURL 时无法启用批量邮件。" }, { "id": "model.config.is_valid.sitename_length.app_error", @@ -3787,11 +3787,11 @@ }, { "id": "model.config.is_valid.sql_conn_max_lifetime_milliseconds.app_error", - "translation": "无效的 SQL 连接最大时限。不能为负数。" + "translation": "SQL 连接最大时限无效。不能为负数。" }, { "id": "model.config.is_valid.sql_data_src.app_error", - "translation": "SQL 设置中的数据源无效。必须设定。" + "translation": "SQL 设置中的数据源无效。必须设置。" }, { "id": "model.config.is_valid.sql_driver.app_error", @@ -3799,7 +3799,7 @@ }, { "id": "model.config.is_valid.sql_idle.app_error", - "translation": "SQL 设置中的最大的空闲连接数无效。必须是正整数。" + "translation": "SQL 设置中的最大空闲连接数无效。必须是正整数。" }, { "id": "model.config.is_valid.sql_max_conn.app_error", @@ -3807,39 +3807,39 @@ }, { "id": "model.config.is_valid.sql_query_timeout.app_error", - "translation": "无效 SQL 查询超时设定。必须是正整数。" + "translation": "SQL 查询超时设置无效。必须是正整数。" }, { "id": "model.config.is_valid.teammate_name_display.app_error", - "translation": "无效的团员显示。必须为 ‘full_name’,‘nickname_full_name’ 或 ‘username’。" + "translation": "团队成员显示设置无效。必须为 ‘full_name’,‘nickname_full_name’ 或 ‘username’。" }, { "id": "model.config.is_valid.time_between_user_typing.app_error", - "translation": "用户键入更新间隔不应设置为小于1000毫秒。" + "translation": "用户键入状态更新间隔不应设置为小于 1000 毫秒。" }, { "id": "model.config.is_valid.tls_cert_file_missing.app_error", - "translation": "无效的 TLS 证书文件值 - 使用 LetsEncrypt 或设置为现有的证书文件路径。" + "translation": "TLS 证书文件值无效:请使用 LetsEncrypt,或设置为现有证书文件路径。" }, { "id": "model.config.is_valid.tls_key_file_missing.app_error", - "translation": "无效的 TLS 证书钥匙文件值 - 使用 LetsEncrypt 或设置为现有的钥匙文件路径。" + "translation": "TLS 证书密钥文件值无效:请使用 LetsEncrypt,或设置为现有密钥文件路径。" }, { "id": "model.config.is_valid.tls_overwrite_cipher.app_error", - "translation": "无效的 TLS 覆盖加密模式值 - 请参阅文档了解有效的值。" + "translation": "TLS 覆盖加密套件值无效。请参阅文档了解有效值。" }, { "id": "model.config.is_valid.webserver_security.app_error", - "translation": "错误的网页服务器连接安全值。" + "translation": "Web 服务器连接安全性值错误。" }, { "id": "model.config.is_valid.websocket_url.app_error", - "translation": "Websocket 网址必须时有效的网址并且以 ws:// 或 wss:// 开头。" + "translation": "WebSocket URL 必须为有效 URL,并以 ws:// 或 wss:// 开头。" }, { "id": "model.config.is_valid.write_timeout.app_error", - "translation": "错误的写入超时值。" + "translation": "写入超时值错误。" }, { "id": "model.emoji.create_at.app_error", @@ -3847,7 +3847,7 @@ }, { "id": "model.emoji.id.app_error", - "translation": "无效的表情符 ID。" + "translation": "表情符 ID 无效。" }, { "id": "model.emoji.name.app_error", @@ -3859,79 +3859,79 @@ }, { "id": "model.emoji.user_id.app_error", - "translation": "无效创建者 id。" + "translation": "用户 ID 无效。" }, { "id": "model.file_info.is_valid.create_at.app_error", - "translation": "错误的 create_at 值。" + "translation": "create_at 值错误。" }, { "id": "model.file_info.is_valid.id.app_error", - "translation": "错误的 id 值。" + "translation": "ID 值错误。" }, { "id": "model.file_info.is_valid.path.app_error", - "translation": "错误的 path 值。" + "translation": "path 值错误。" }, { "id": "model.file_info.is_valid.post_id.app_error", - "translation": "错误的 post_id 值。" + "translation": "post_id 值错误。" }, { "id": "model.file_info.is_valid.update_at.app_error", - "translation": "错误的 update_at 值。" + "translation": "update_at 值错误。" }, { "id": "model.file_info.is_valid.user_id.app_error", - "translation": "错误的 user_id 值。" + "translation": "user_id 值错误。" }, { "id": "model.group.create_at.app_error", - "translation": "无效的组创建日期属性。" + "translation": "组创建日期属性无效。" }, { "id": "model.group.description.app_error", - "translation": "无效的组描述属性。" + "translation": "组描述属性无效。" }, { "id": "model.group.display_name.app_error", - "translation": "无效的组显示名属性。" + "translation": "组显示名属性无效。" }, { "id": "model.group.name.app_error", - "translation": "无效的组名称属性。" + "translation": "组名称属性无效。" }, { "id": "model.group.remote_id.app_error", - "translation": "无效的组远程 id 属性。" + "translation": "组远程 ID 属性无效。" }, { "id": "model.group.source.app_error", - "translation": "无效的组来源属性。" + "translation": "组来源属性无效。" }, { "id": "model.group.update_at.app_error", - "translation": "无效的组更新日期属性。" + "translation": "组更新日期属性无效。" }, { "id": "model.group_member.group_id.app_error", - "translation": "无效的组成员的组 id 属性。" + "translation": "组成员的组 ID 属性无效。" }, { "id": "model.group_member.user_id.app_error", - "translation": "无效的组成员用户 id 属性。" + "translation": "组成员用户 ID 属性无效。" }, { "id": "model.group_syncable.group_id.app_error", - "translation": "无效的可同步组组 id 属性。" + "translation": "可同步组组 ID 属性无效。" }, { "id": "model.group_syncable.syncable_id.app_error", - "translation": "无效的可同步组 id。" + "translation": "可同步组 ID 无效。" }, { "id": "model.incoming_hook.channel_id.app_error", - "translation": "无效的频道 id。" + "translation": "频道 ID 无效。" }, { "id": "model.incoming_hook.create_at.app_error", @@ -3939,19 +3939,19 @@ }, { "id": "model.incoming_hook.description.app_error", - "translation": "无效的描述。" + "translation": "描述无效。" }, { "id": "model.incoming_hook.display_name.app_error", - "translation": "无效的标题。" + "translation": "标题无效。" }, { "id": "model.incoming_hook.icon_url.app_error", - "translation": "无效消息图标。" + "translation": "消息图标无效。" }, { "id": "model.incoming_hook.id.app_error", - "translation": "无效的 Id:{{.Id}}。" + "translation": "ID:{{.Id}} 无效。" }, { "id": "model.incoming_hook.parse_data.app_error", @@ -3959,7 +3959,7 @@ }, { "id": "model.incoming_hook.team_id.app_error", - "translation": "无效的团队 ID。" + "translation": "团队 ID 无效。" }, { "id": "model.incoming_hook.update_at.app_error", @@ -3967,11 +3967,11 @@ }, { "id": "model.incoming_hook.user_id.app_error", - "translation": "无效的用户 id。" + "translation": "用户 ID 无效。" }, { "id": "model.incoming_hook.username.app_error", - "translation": "无效的用户名。" + "translation": "用户名无效。" }, { "id": "model.job.is_valid.create_at.app_error", @@ -3979,55 +3979,55 @@ }, { "id": "model.job.is_valid.id.app_error", - "translation": "无效的任务 Id。" + "translation": "任务 ID 无效。" }, { "id": "model.job.is_valid.status.app_error", - "translation": "无效的任务状态。" + "translation": "任务状态无效。" }, { "id": "model.job.is_valid.type.app_error", - "translation": "无效的任务类型。" + "translation": "任务类型无效。" }, { "id": "model.license_record.is_valid.create_at.app_error", - "translation": "上传许可证时错误的 create_at 值。" + "translation": "上传许可证时 create_at 值错误。" }, { "id": "model.license_record.is_valid.id.app_error", - "translation": "上传许可证时错误的 id 值。" + "translation": "上传许可证时 ID 值错误。" }, { "id": "model.link_metadata.is_valid.data.app_error", - "translation": "连接元数据不能为 nil。" + "translation": "链接元数据不能为 nil。" }, { "id": "model.link_metadata.is_valid.data_type.app_error", - "translation": "连接元数据不符合指定的类型。" + "translation": "链接元数据不符合指定的类型。" }, { "id": "model.link_metadata.is_valid.timestamp.app_error", - "translation": "连接元数据日期必须有效并且精确到小时。" + "translation": "链接元数据日期必须有效并且精确到小时。" }, { "id": "model.link_metadata.is_valid.type.app_error", - "translation": "无效的连接元数据类型。" + "translation": "链接元数据类型无效。" }, { "id": "model.link_metadata.is_valid.url.app_error", - "translation": "必须设定连接元数据网址。" + "translation": "必须设置链接元数据 URL。" }, { "id": "model.oauth.is_valid.app_id.app_error", - "translation": "无效的应用 id。" + "translation": "应用 ID 无效。" }, { "id": "model.oauth.is_valid.callback.app_error", - "translation": "回调网址必须为有效URL并且以 http:// 或 https:// 开头。" + "translation": "回调 URL 必须为有效 URL,并以 http:// 或 https:// 开头。" }, { "id": "model.oauth.is_valid.client_secret.app_error", - "translation": "无效的客户端秘钥。" + "translation": "客户端秘钥无效。" }, { "id": "model.oauth.is_valid.create_at.app_error", @@ -4035,23 +4035,23 @@ }, { "id": "model.oauth.is_valid.creator_id.app_error", - "translation": "无效创建者 id。" + "translation": "创建者 ID 无效。" }, { "id": "model.oauth.is_valid.description.app_error", - "translation": "无效的描述。" + "translation": "描述无效。" }, { "id": "model.oauth.is_valid.homepage.app_error", - "translation": "首页网址必须为有效URL并且以 http:// 或 https:// 开头。" + "translation": "首页 URL 必须为有效 URL,并以 http:// 或 https:// 开头。" }, { "id": "model.oauth.is_valid.icon_url.app_error", - "translation": "图标网址必须为有效URL并且以 http:// 或 https:// 开头。" + "translation": "图标 URL 必须为有效 URL,并以 http:// 或 https:// 开头。" }, { "id": "model.oauth.is_valid.name.app_error", - "translation": "无效的名称。" + "translation": "名称无效。" }, { "id": "model.oauth.is_valid.update_at.app_error", @@ -4059,19 +4059,19 @@ }, { "id": "model.outgoing_hook.icon_url.app_error", - "translation": "无效的图标。" + "translation": "图标无效。" }, { "id": "model.outgoing_hook.is_valid.callback.app_error", - "translation": "无效的回调网址。" + "translation": "回调 URL 无效。" }, { "id": "model.outgoing_hook.is_valid.channel_id.app_error", - "translation": "无效的频道 id。" + "translation": "频道 ID 无效。" }, { "id": "model.outgoing_hook.is_valid.content_type.app_error", - "translation": "错误的 content_type 值。" + "translation": "content_type 值错误。" }, { "id": "model.outgoing_hook.is_valid.create_at.app_error", @@ -4079,27 +4079,27 @@ }, { "id": "model.outgoing_hook.is_valid.description.app_error", - "translation": "无效的描述。" + "translation": "描述无效。" }, { "id": "model.outgoing_hook.is_valid.display_name.app_error", - "translation": "无效的标题。" + "translation": "标题无效。" }, { "id": "model.outgoing_hook.is_valid.id.app_error", - "translation": "无效的 Id。" + "translation": "ID 无效。" }, { "id": "model.outgoing_hook.is_valid.team_id.app_error", - "translation": "无效的团队 ID。" + "translation": "团队 ID 无效。" }, { "id": "model.outgoing_hook.is_valid.token.app_error", - "translation": "无效的令牌。" + "translation": "令牌无效。" }, { "id": "model.outgoing_hook.is_valid.trigger_words.app_error", - "translation": "无效的触发关键词。" + "translation": "触发关键词无效。" }, { "id": "model.outgoing_hook.is_valid.update_at.app_error", @@ -4107,19 +4107,19 @@ }, { "id": "model.outgoing_hook.is_valid.url.app_error", - "translation": "无效的回调网址。每一个必须以 http:// 或者 https:// 开头的有效网址。" + "translation": "回调 URL 无效。每个 URL 都必须有效,并以 http:// 或 https:// 开头。" }, { "id": "model.outgoing_hook.is_valid.user_id.app_error", - "translation": "无效的用户 id。" + "translation": "用户 ID 无效。" }, { "id": "model.outgoing_hook.is_valid.words.app_error", - "translation": "无效的触发关键词。" + "translation": "触发关键词无效。" }, { "id": "model.outgoing_hook.username.app_error", - "translation": "无效的用户名。" + "translation": "用户名无效。" }, { "id": "model.plugin_command.error.app_error", @@ -4127,15 +4127,15 @@ }, { "id": "model.plugin_key_value.is_valid.key.app_error", - "translation": "无效键,必须为 {{.Min}} 至 {{.Max}} 个字符。" + "translation": "键无效,必须为 {{.Min}} 至 {{.Max}} 个字符。" }, { "id": "model.plugin_key_value.is_valid.plugin_id.app_error", - "translation": "无效插件 ID,必须为 {{.Min}} 至 {{.Max}} 个字符。" + "translation": "插件 ID 无效,必须为 {{.Min}} 至 {{.Max}} 个字符。" }, { "id": "model.post.is_valid.channel_id.app_error", - "translation": "无效的频道 id。" + "translation": "频道 ID 无效。" }, { "id": "model.post.is_valid.create_at.app_error", @@ -4143,35 +4143,35 @@ }, { "id": "model.post.is_valid.file_ids.app_error", - "translation": "无效的文件 id。上传只允许最多 10 个文件。请考虑创建新的消息以上传更多文件。" + "translation": "文件 ID 无效。上传只允许最多 10 个文件。请考虑创建新的消息以上传更多文件。" }, { "id": "model.post.is_valid.filenames.app_error", - "translation": "无效的文件名。" + "translation": "文件名无效。" }, { "id": "model.post.is_valid.hashtags.app_error", - "translation": "无效的标签。" + "translation": "标签无效。" }, { "id": "model.post.is_valid.id.app_error", - "translation": "无效的 Id。" + "translation": "ID 无效。" }, { "id": "model.post.is_valid.original_id.app_error", - "translation": "无效的原始 id。" + "translation": "原始 ID 无效。" }, { "id": "model.post.is_valid.props.app_error", - "translation": "无效的属性。" + "translation": "属性无效。" }, { "id": "model.post.is_valid.root_id.app_error", - "translation": "无效的根 id。" + "translation": "根 ID 无效。" }, { "id": "model.post.is_valid.type.app_error", - "translation": "无效的类型。" + "translation": "类型无效。" }, { "id": "model.post.is_valid.update_at.app_error", @@ -4179,23 +4179,23 @@ }, { "id": "model.post.is_valid.user_id.app_error", - "translation": "无效的用户 id。" + "translation": "用户 ID 无效。" }, { "id": "model.preference.is_valid.category.app_error", - "translation": "无效的分类。" + "translation": "分类无效。" }, { "id": "model.preference.is_valid.id.app_error", - "translation": "无效的用户 id。" + "translation": "用户 ID 无效。" }, { "id": "model.preference.is_valid.name.app_error", - "translation": "无效的名称。" + "translation": "名称无效。" }, { "id": "model.preference.is_valid.theme.app_error", - "translation": "无效的主题。" + "translation": "主题无效。" }, { "id": "model.preference.is_valid.value.app_error", @@ -4207,15 +4207,15 @@ }, { "id": "model.reaction.is_valid.emoji_name.app_error", - "translation": "无效的表情符名。" + "translation": "表情符名称无效。" }, { "id": "model.reaction.is_valid.post_id.app_error", - "translation": "无效的消息 id。" + "translation": "消息 ID 无效。" }, { "id": "model.reaction.is_valid.user_id.app_error", - "translation": "无效的用户 id。" + "translation": "用户 ID 无效。" }, { "id": "model.team.is_valid.characters.app_error", @@ -4223,7 +4223,7 @@ }, { "id": "model.team.is_valid.company.app_error", - "translation": "无效的公司名。" + "translation": "公司名无效。" }, { "id": "model.team.is_valid.create_at.app_error", @@ -4231,31 +4231,31 @@ }, { "id": "model.team.is_valid.description.app_error", - "translation": "无效的描述。" + "translation": "描述无效。" }, { "id": "model.team.is_valid.domains.app_error", - "translation": "无效的允许域。" + "translation": "允许域无效。" }, { "id": "model.team.is_valid.email.app_error", - "translation": "无效的邮箱。" + "translation": "邮箱无效。" }, { "id": "model.team.is_valid.id.app_error", - "translation": "无效的 Id。" + "translation": "ID 无效。" }, { "id": "model.team.is_valid.name.app_error", - "translation": "无效的名称。" + "translation": "名称无效。" }, { "id": "model.team.is_valid.reserved.app_error", - "translation": "这个网址是不可用。请尝试另一个。" + "translation": "此 URL 不可用。请尝试其他 URL。" }, { "id": "model.team.is_valid.type.app_error", - "translation": "无效的类型。" + "translation": "类型无效。" }, { "id": "model.team.is_valid.update_at.app_error", @@ -4263,27 +4263,27 @@ }, { "id": "model.team.is_valid.url.app_error", - "translation": "无效的网址标识。" + "translation": "URL 标识无效。" }, { "id": "model.team_member.is_valid.team_id.app_error", - "translation": "无效的团队 ID。" + "translation": "团队 ID 无效。" }, { "id": "model.team_member.is_valid.user_id.app_error", - "translation": "无效的用户 id。" + "translation": "用户 ID 无效。" }, { "id": "model.token.is_valid.expiry", - "translation": "无效的令牌过期" + "translation": "令牌过期无效" }, { "id": "model.token.is_valid.size", - "translation": "无效的令牌。" + "translation": "令牌无效。" }, { "id": "model.user.is_valid.email.app_error", - "translation": "无效的邮箱。" + "translation": "邮箱无效。" }, { "id": "model.user.is_valid.pwd_lowercase.app_error", @@ -4343,7 +4343,7 @@ }, { "id": "model.user.is_valid.pwd_uppercase_symbol.app_error", - "translation": "您的密码必须包含至少 {{.Min}} 个字元且至少有一个大写字母以及一个符号(例如:“~!@#$%^&*()”)。" + "translation": "您的密码必须包含至少 {{.Min}} 个字符且至少有一个大写字母以及一个符号(例如:“~!@#$%^&*()”)。" }, { "id": "model.user.is_valid.username.app_error", @@ -4351,19 +4351,19 @@ }, { "id": "model.user_access_token.is_valid.description.app_error", - "translation": "无效的描述,必须 255 字以内。" + "translation": "描述无效,必须 255 字以内。" }, { "id": "model.user_access_token.is_valid.id.app_error", - "translation": "错误的 id 值。" + "translation": "ID 值错误。" }, { "id": "model.user_access_token.is_valid.token.app_error", - "translation": "无效的访问令牌。" + "translation": "访问令牌无效。" }, { "id": "model.user_access_token.is_valid.user_id.app_error", - "translation": "无效的用户 id。" + "translation": "用户 ID 无效。" }, { "id": "model.utils.decode_json.app_error", @@ -4375,11 +4375,11 @@ }, { "id": "oauth.gitlab.tos.error", - "translation": "GitLab 的使用条款已更新。请到 {{.URL}} 接受新的使用条款后再尝试登入 Mattermost。" + "translation": "GitLab 的使用条款已更新。请到 {{.URL}} 接受新的使用条款后再尝试登录 Mattermost。" }, { "id": "plugin.api.update_user_status.bad_status", - "translation": "无法设定用户状态。未知用户状态。" + "translation": "无法设置用户状态。未知用户状态。" }, { "id": "plugin_api.get_file_link.disabled.app_error", @@ -4415,7 +4415,7 @@ }, { "id": "store.sql_channel.save.direct_channel.app_error", - "translation": "使用 SaveDirectChannel 创建私聊频道。" + "translation": "使用 SaveDirectChannel 创建私信频道。" }, { "id": "store.sql_channel.save_channel.existing.app_error", @@ -4431,7 +4431,7 @@ }, { "id": "store.sql_channel.save_direct_channel.not_direct.app_error", - "translation": "不能试图用 SaveDirectChannel 创建私聊频道。" + "translation": "不能使用 SaveDirectChannel 创建非私信频道。" }, { "id": "store.sql_command.save.get.app_error", @@ -4447,7 +4447,7 @@ }, { "id": "store.sql_user.get_for_login.app_error", - "translation": "未找到符合您的凭证的帐号。此团队或许需要从团队拥有者获得邀请才可加入。" + "translation": "未找到与您的凭证匹配的账号。此团队可能需要团队所有者邀请才能加入。" }, { "id": "system.message.name", @@ -4459,7 +4459,7 @@ }, { "id": "web.command_webhook.parse.app_error", - "translation": "无法解析 webhook {{.hook_id}} 的传入数据。" + "translation": "无法解析 Webhook {{.hook_id}} 的传入数据。" }, { "id": "web.get_access_token.internal_saving.app_error", @@ -4471,15 +4471,15 @@ }, { "id": "web.incoming_webhook.channel_locked.app_error", - "translation": "此 webhook 不允许发布到请求的频道 {{.channel_id}}" + "translation": "此 Webhook 不允许发布到请求的频道 {{.channel_id}}" }, { "id": "web.incoming_webhook.disabled.app_error", - "translation": "传入webhooks已经被系统管理员禁用。" + "translation": "传入 Webhook 已被系统管理员禁用。" }, { "id": "web.incoming_webhook.invalid.app_error", - "translation": "无效的 webhook。" + "translation": "Webhook 无效。" }, { "id": "web.incoming_webhook.parse.app_error", @@ -4491,7 +4491,7 @@ }, { "id": "web.incoming_webhook.split_props_length.app_error", - "translation": "无法拆分 webhook 属性信息到 {{.Max}} 字符块。" + "translation": "无法将 Webhook 属性信息拆分为 {{.Max}} 个字符块。" }, { "id": "web.incoming_webhook.text.app_error", @@ -4571,11 +4571,11 @@ }, { "id": "app.import.validate_user_import_data.advanced_props_formatting.error", - "translation": "无效的用户消息格式设定" + "translation": "用户消息格式设置无效" }, { "id": "app.import.validate_user_import_data.advanced_props_show_unread_section.error", - "translation": "无效的用户显示未读块设定" + "translation": "用户显示未读块设置无效" }, { "id": "app.import.validate_user_import_data.auth_data_and_service_dependency.error", @@ -4583,7 +4583,7 @@ }, { "id": "app.plugin.get_public_key.get_file.app_error", - "translation": "从储存获取公钥时遇到错误。" + "translation": "从存储获取公钥时遇到错误。" }, { "id": "app.plugin.install_marketplace_plugin.app_error", @@ -4619,7 +4619,7 @@ }, { "id": "app.plugin.modify_saml.app_error", - "translation": "无法修改 saml 文件。" + "translation": "无法修改 SAML 文件。" }, { "id": "app.plugin.restart.app_error", @@ -4631,11 +4631,11 @@ }, { "id": "app.plugin.store_bundle.app_error", - "translation": "无法储存插件到配置的文件储存。" + "translation": "无法将插件存储到配置的文件存储。" }, { "id": "app.plugin.sync.list_filestore.app_error", - "translation": "从文件储存读取插件文件失败。" + "translation": "从文件存储读取插件文件失败。" }, { "id": "app.plugin.sync.read_local_folder.app_error", @@ -4723,7 +4723,7 @@ }, { "id": "ent.elasticsearch.refresh_indexes.refresh_failed", - "translation": "刷新 ElasticSearch 索引失败" + "translation": "刷新 Elasticsearch 索引失败" }, { "id": "ent.elasticsearch.search_channels.search_failed", @@ -4747,15 +4747,15 @@ }, { "id": "ent.id_loaded.license_disable.app_error", - "translation": "您的授权不支持 ID Loaded Push Notifications。" + "translation": "您的许可证不支持 ID Loaded Push Notifications。" }, { "id": "ent.ldap.validate_admin_filter.app_error", - "translation": "无效的 AD/LDAP 管理筛选器。" + "translation": "AD/LDAP 管理筛选器无效。" }, { "id": "ent.ldap.validate_guest_filter.app_error", - "translation": "无效的 AD/LDAP 访客筛选器。" + "translation": "AD/LDAP 访客筛选器无效。" }, { "id": "groups.unsupported_syncable_type", @@ -4763,7 +4763,7 @@ }, { "id": "model.command.is_valid.autocomplete_data.app_error", - "translation": "无效的 AutocompleteData" + "translation": "AutocompleteData 无效" }, { "id": "model.config.is_valid.elastic_search.enable_autocomplete.app_error", @@ -4771,75 +4771,75 @@ }, { "id": "model.config.is_valid.saml_admin_attribute.app_error", - "translation": "无效的管理员属性。格式必须为“栏=值”。" + "translation": "管理员属性无效。格式必须为“字段=值”。" }, { "id": "model.config.is_valid.saml_canonical_algorithm.app_error", - "translation": "无效的规范化算法。" + "translation": "规范化算法无效。" }, { "id": "model.config.is_valid.saml_signature_algorithm.app_error", - "translation": "无效的签名算法。" + "translation": "签名算法无效。" }, { "id": "model.guest.is_valid.channel.app_error", - "translation": "无效的频道。" + "translation": "频道无效。" }, { "id": "model.guest.is_valid.channels.app_error", - "translation": "无效的频道。" + "translation": "频道无效。" }, { "id": "model.guest.is_valid.emails.app_error", - "translation": "无效的邮箱。" + "translation": "邮箱无效。" }, { "id": "model.plugin_kvset_options.is_valid.old_value.app_error", - "translation": "无效的旧值,操作非原子操作时不应该设定。" + "translation": "旧值无效,操作非原子操作时不应该设置。" }, { "id": "model.team.is_valid.invite_id.app_error", - "translation": "无效的邀请 id。" + "translation": "邀请 ID 无效。" }, { "id": "model.user.is_valid.auth_data.app_error", - "translation": "无效的认证数据。" + "translation": "认证数据无效。" }, { "id": "model.user.is_valid.auth_data_pwd.app_error", - "translation": "无效的用户名,密码和验证数据不能同时设置。" + "translation": "用户名无效,密码和验证数据不能同时设置。" }, { "id": "model.user.is_valid.auth_data_type.app_error", - "translation": "无效用户:只有当用户使用外部认证服务(而非邮箱/密码)进行身份验证时,才能设置认证数据。" + "translation": "用户无效:只有当用户使用外部认证服务(而非邮箱/密码)认证时,才能设置认证数据。" }, { "id": "model.user.is_valid.first_name.app_error", - "translation": "无效的名字。" + "translation": "名字无效。" }, { "id": "model.user.is_valid.id.app_error", - "translation": "无效的用户 id。" + "translation": "用户 ID 无效。" }, { "id": "model.user.is_valid.last_name.app_error", - "translation": "无效的姓氏。" + "translation": "姓氏无效。" }, { "id": "model.user.is_valid.locale.app_error", - "translation": "无效的地区。" + "translation": "地区无效。" }, { "id": "model.user.is_valid.nickname.app_error", - "translation": "无效的昵称。" + "translation": "昵称无效。" }, { "id": "model.user.is_valid.position.app_error", - "translation": "无效位置:不能超过 128 个字符。" + "translation": "位置无效:不能超过 128 个字符。" }, { "id": "plugin.api.get_users_in_channel", - "translation": "无法获取用户,无效的排序条件。" + "translation": "无法获取用户,排序条件无效。" }, { "id": "plugin_api.bot_cant_create_bot", @@ -4883,11 +4883,11 @@ }, { "id": "api.command_remove.group_constrained_user_denied", - "translation": "用户不能从此频道移除因为他们属于关联到此频道的组。如果想从此频道移除他们,必须从关联组里移除。" + "translation": "不能从此频道移除该用户,因为该用户属于关联到此频道的组。若要从此频道移除该用户,必须先将其从关联组中移除。" }, { "id": "api.file.upload_file.incorrect_channelId.app_error", - "translation": "无法上传文件。不正确的频道 ID:{{.channelId}}" + "translation": "无法上传文件。频道 ID {{.channelId}} 不正确。" }, { "id": "api.plugin.verify_plugin.app_error", @@ -4895,7 +4895,7 @@ }, { "id": "api.post.check_for_out_of_channel_groups_mentions.message.multiple", - "translation": "@{{.Usernames}} 以及 @{{.LastUsername}} 未被通知因为他们不在此频道。他们未能被添加到频道因为他们不是关联组的成员。他们必须添加到关联组才能添加到此频道。" + "translation": "@{{.Usernames}} 以及 @{{.LastUsername}} 未收到通知,因为他们不在此频道。无法将他们添加到频道,因为他们不是关联组的成员。必须先将他们添加到关联组,才能添加到此频道。" }, { "id": "api.push_notification.disabled.app_error", @@ -4907,11 +4907,11 @@ }, { "id": "api.push_notifications.session.expired", - "translation": "会话已超时:请登入以继续接收通知。{{.siteName}} 的会话过期时间被您的系统管理员配置为 {{.hoursCount}} 小时。" + "translation": "会话已超时:请登录以继续接收通知。系统管理员将 {{.siteName}} 的会话过期时间配置为 {{.hoursCount}} 小时。" }, { "id": "api.slackimport.slack_import.zip.file_too_large", - "translation": "zip 压缩包中的 {{.Filename}} 过大,无法进行 Slack 导入\r\n" + "translation": "zip 压缩包中的 {{.Filename}} 过大,无法进行 Slack 导入\n" }, { "id": "api.team.add_members.user_denied", @@ -4923,7 +4923,7 @@ }, { "id": "api.user.login.guest_accounts.license.error", - "translation": "您的许可证不支持访客帐号" + "translation": "您的许可证不支持访客账号" }, { "id": "api.team.invite_guests.channel_in_invalid_team.app_error", @@ -4951,11 +4951,11 @@ }, { "id": "api.user.update_active.cannot_enable_guest_when_guest_feature_is_disabled.app_error", - "translation": "您无法启动访客帐号因为访客功能未启用。" + "translation": "无法启用访客账号,因为访客功能未启用。" }, { "id": "api.user.update_user.accepted_guest_domain.app_error", - "translation": "您提供的电子邮件不属于访客允许的域名。请与您的管理员联系或使用一个不同的电子邮件注册。" + "translation": "您提供的邮箱地址不属于访客允许的域名。请联系管理员或使用其他邮箱地址注册。" }, { "id": "app.export.export_custom_emoji.copy_emoji_images.error", @@ -4971,15 +4971,15 @@ }, { "id": "app.import.validate_user_import_data.advanced_props_email_interval.error", - "translation": "无效的用户邮件批量间隔设定" + "translation": "用户邮件批量间隔设置无效" }, { "id": "app.import.validate_user_import_data.advanced_props_feature_markdown_preview.error", - "translation": "无效的用户 markdown 预览设定" + "translation": "用户 Markdown 预览设置无效" }, { "id": "app.import.validate_user_teams_import_data.invalid_team_theme.error", - "translation": "无效的用户风格" + "translation": "用户风格无效" }, { "id": "app.plugin.delete_public_key.delete.app_error", @@ -4991,11 +4991,11 @@ }, { "id": "app.plugin.remove_bundle.app_error", - "translation": "无法从文件储存移除插件。" + "translation": "无法从文件存储移除插件。" }, { "id": "app.plugin.store_signature.app_error", - "translation": "无法储存插件签名到文件储存。" + "translation": "无法存储插件签名到文件存储。" }, { "id": "app.team.invite_id.group_constrained.error", @@ -5031,7 +5031,7 @@ }, { "id": "interactive_message.decode_trigger_id.base64_decode_failed_signature", - "translation": "无法为互动对话框解码触发 ID 的 base64 签名。" + "translation": "无法为交互式对话框解码触发 ID 的 base64 签名。" }, { "id": "model.channel.is_valid.name.app_error", @@ -5039,15 +5039,15 @@ }, { "id": "model.config.is_valid.saml_guest_attribute.app_error", - "translation": "无效的访客属性。格式必须为“栏=值”。" + "translation": "访客属性无效。格式必须为“字段=值”。" }, { "id": "model.group.name.invalid_chars.app_error", - "translation": "组中的名称属性有无效的字符" + "translation": "组中的名称属性包含无效字符。" }, { "id": "model.guest.is_valid.email.app_error", - "translation": "无效的邮箱。" + "translation": "邮箱无效。" }, { "id": "model.post.channel_notifications_disabled_in_channel.message", @@ -5087,11 +5087,11 @@ }, { "id": "api.admin.saml.set_certificate_from_metadata.invalid_body.app_error", - "translation": "无效的证书文本。" + "translation": "证书文本无效。" }, { "id": "api.admin.saml.set_certificate_from_metadata.invalid_content_type.app_error", - "translation": "无效的内容类型。" + "translation": "内容类型无效。" }, { "id": "api.admin.saml.set_certificate_from_metadata.missing_content_type.app_error", @@ -5155,11 +5155,11 @@ }, { "id": "api.command_invite.user_not_in_team.app_error", - "translation": "一旦{{.Users}}成为**{{.Team}}**团队的成员,您可以将他们添加到此频道中。" + "translation": "一旦 {{.Users}} 成为 **{{.Team}}** 团队的成员,您就可以将他们添加到此频道。" }, { "id": "api.config.update_config.clear_siteurl.app_error", - "translation": "无法清除站点网址。" + "translation": "无法清除站点 URL。" }, { "id": "api.config.update_config.restricted_merge.app_error", @@ -5183,7 +5183,7 @@ }, { "id": "api.image.get.app_error", - "translation": "无法解析请求的图片网址。" + "translation": "无法解析请求的图片 URL。" }, { "id": "api.ldap_groups.existing_group_name_error", @@ -5199,7 +5199,7 @@ }, { "id": "api.license.remove_expired_license.failed.error", - "translation": "无法发送许可证注销邮件。" + "translation": "无法发送过期许可证移除邮件。" }, { "id": "api.plugin.install.download_failed.app_error", @@ -5207,11 +5207,11 @@ }, { "id": "api.post.check_for_out_of_channel_group_users.message.none", - "translation": "@{{.GroupName}}没有在此团队的成员" + "translation": "此团队中没有 @{{.GroupName}} 的成员。" }, { "id": "api.post.check_for_out_of_channel_groups_mentions.message.one", - "translation": "@{{.Username}} 未被通知因为他不在此频道。他们未能被添加到频道因为他们不是关联组的成员。他们必须添加到关联组才能添加到此频道。" + "translation": "@{{.Username}} 未收到通知,因为该用户不在此频道。无法将其添加到频道,因为该用户不是关联组成员。必须先将其添加到关联组,才能添加到此频道。" }, { "id": "api.post.error_get_post_id.pending", @@ -5251,11 +5251,11 @@ }, { "id": "api.team.demote_user_to_guest.license.error", - "translation": "您的许可证不支持访客帐号" + "translation": "您的许可证不支持访客账号" }, { "id": "api.team.demote_user_to_guest.disabled.error", - "translation": "访客帐号已停用。" + "translation": "访客账号已停用。" }, { "id": "api.team.invalidate_all_email_invites.app_error", @@ -5279,23 +5279,23 @@ }, { "id": "api.user.create_user.guest_accounts.disabled.app_error", - "translation": "访客帐号已停用。" + "translation": "访客账号已停用。" }, { "id": "api.user.create_user.guest_accounts.license.app_error", - "translation": "您的许可证不支持访客帐号。" + "translation": "您的许可证不支持访客账号。" }, { "id": "api.user.create_user.invalid_invitation_type.app_error", - "translation": "无法创建用户,无效的邀请。" + "translation": "无法创建用户,邀请无效。" }, { "id": "api.user.demote_user_to_guest.already_guest.app_error", - "translation": "无法转换该用户至访客因为他已经是访客。" + "translation": "无法将该用户转换为访客,因为该用户已经是访客。" }, { "id": "api.user.login.guest_accounts.disabled.error", - "translation": "访客帐号已停用" + "translation": "访客账号已停用" }, { "id": "api.user.login.invalid_credentials_email", @@ -5303,7 +5303,7 @@ }, { "id": "api.user.login.invalid_credentials_sso", - "translation": "输入有效的邮箱、用户名以及密码,或使用其他方式登入。" + "translation": "输入有效的邮箱、用户名以及密码,或使用其他方式登录。" }, { "id": "api.user.login.invalid_credentials_username", @@ -5311,11 +5311,11 @@ }, { "id": "api.user.promote_guest_to_user.no_guest.app_error", - "translation": "无法转换该访客至普通用户因为他不是访客。" + "translation": "无法将该访客转换为普通用户,因为该用户不是访客。" }, { "id": "api.user.update_user.accepted_domain.app_error", - "translation": "您提供的电子邮件不属于允许的域名。请与您的管理员联系或使用一个不同的电子邮件注册。" + "translation": "您提供的邮箱地址不属于允许的域名。请联系管理员或使用其他邮箱地址注册。" }, { "id": "api.websocket_handler.server_busy.app_error", @@ -5335,7 +5335,7 @@ }, { "id": "app.admin.test_site_url.failure", - "translation": "不是有效的网址" + "translation": "不是有效的 URL" }, { "id": "app.bot.createbot.internal_error", @@ -5347,7 +5347,7 @@ }, { "id": "app.bot.get_disable_bot_sysadmin_message", - "translation": "{{if .disableBotsSetting}}{{if .printAllBots}}{{.UserName}} 已注销。他们管理以下已停用的机器人帐号。\n\n{{.BotNames}}{{else}}{{.UserName}} 已注销。他们管理 {{.NumBots}} 个已停用的机器人帐号,其中包括:\n\n{{.BotNames}}{{end}}您可以在**整合 > 机器人帐号**启用并创建新的令牌以获取所有权。\n\n更多详情,参见我们的[文档](https://docs.mattermost.com/developer/bot-accounts.html#what-happens-when-a-user-who-owns-bot-accounts-is-disabled)。{{else}}{{if .printAllBots}}{{.UserName}} 已注销。他们管理以下机器人帐号。\n\n{{.BotNames}}\n{{else}}{{.UserName}} 已注销。他们管理 {{.NumBots}} 个机器人帐号,其中包括:\n\n{{.BotNames}}{{end}}我们强烈推荐您在**整合 > 机器人帐号**启用并创建新的令牌以获取所有权。\n\n更多详情,参见我们的[文档](https://docs.mattermost.com/developer/bot-accounts.html#what-happens-when-a-user-who-owns-bot-accounts-is-disabled)。\n\n如果您想在用户被注销后自动停用机器人帐号,在**系统控制台 > 整合 > 机器人帐号**中设置“在用户注销后自动停用机器人帐号”为是。{{end}}" + "translation": "{{if .disableBotsSetting}}{{if .printAllBots}}{{.UserName}} 已停用。他们管理以下已停用的机器人账号。\n\n{{.BotNames}}{{else}}{{.UserName}} 已停用。他们管理 {{.NumBots}} 个已停用的机器人账号,其中包括:\n\n{{.BotNames}}{{end}}您可以在**集成 > 机器人账号**启用并创建新的令牌以获取所有权。\n\n更多详情,参见我们的[文档](https://docs.mattermost.com/developer/bot-accounts.html#what-happens-when-a-user-who-owns-bot-accounts-is-disabled)。{{else}}{{if .printAllBots}}{{.UserName}} 已停用。他们管理以下机器人账号。\n\n{{.BotNames}}\n{{else}}{{.UserName}} 已停用。他们管理 {{.NumBots}} 个机器人账号,其中包括:\n\n{{.BotNames}}{{end}}我们强烈推荐您在**集成 > 机器人账号**启用并创建新的令牌以获取所有权。\n\n更多详情,参见我们的[文档](https://docs.mattermost.com/developer/bot-accounts.html#what-happens-when-a-user-who-owns-bot-accounts-is-disabled)。\n\n如果您想在用户被停用后自动停用机器人账号,在**系统控制台 > 集成 > 机器人账号**中设置“在用户停用后自动停用机器人账号”为是。{{end}}" }, { "id": "app.bot.getbot.internal_error", @@ -5427,7 +5427,7 @@ }, { "id": "app.scheme.save.invalid_scheme.app_error", - "translation": "无效的方案。" + "translation": "方案无效。" }, { "id": "app.scheme.save.app_error", @@ -5579,19 +5579,19 @@ }, { "id": "app.reaction.save.save.app_error", - "translation": "无法保存互动。" + "translation": "无法保存表情回应。" }, { "id": "app.reaction.get_for_post.app_error", - "translation": "无法获取消息的互动。" + "translation": "无法获取消息的表情回应。" }, { "id": "app.reaction.delete_all_with_emoji_name.get_reactions.app_error", - "translation": "无法用提供的表情符获取互动。" + "translation": "无法使用提供的表情符获取表情回应。" }, { "id": "app.reaction.bulk_get_for_post_ids.app_error", - "translation": "无法获取消息的互动。" + "translation": "无法获取消息的表情回应。" }, { "id": "app.command.listteamcommands.internal_error", @@ -5599,11 +5599,11 @@ }, { "id": "app.command_webhook.try_use.invalid", - "translation": "无效的 webhook。" + "translation": "Webhook 无效。" }, { "id": "app.command_webhook.try_use.internal_error", - "translation": "无法使用 webhook。" + "translation": "无法使用 Webhook。" }, { "id": "app.command_webhook.handle_command_webhook.parse", @@ -5611,19 +5611,19 @@ }, { "id": "app.command_webhook.get.missing", - "translation": "无法查找 webhook。" + "translation": "无法查找 Webhook。" }, { "id": "app.command_webhook.get.internal_error", - "translation": "无法获取 webhook。" + "translation": "无法获取 Webhook。" }, { "id": "app.command_webhook.create_command_webhook.internal_error", - "translation": "无法保存 CommandWebhook。" + "translation": "无法保存命令 Webhook。" }, { "id": "app.command_webhook.create_command_webhook.existing", - "translation": "您不能更新现有的 CommandWebhook。" + "translation": "您不能更新现有的命令 Webhook。" }, { "id": "app.oauth.update_app.updating.app_error", @@ -5775,7 +5775,7 @@ }, { "id": "app.channel.create_initial_sidebar_categories.internal_error", - "translation": "无法创建用户初始侧栏分类。" + "translation": "无法创建用户初始侧边栏分类。" }, { "id": "app.analytics.getanalytics.internal_error", @@ -5863,87 +5863,87 @@ }, { "id": "app.webhooks.update_outgoing.app_error", - "translation": "无法更新 webhook。" + "translation": "无法更新 Webhook。" }, { "id": "app.webhooks.update_incoming.app_error", - "translation": "无法更新 IncomingWebhook." + "translation": "无法更新传入 Webhook。" }, { "id": "app.webhooks.save_outgoing.override.app_error", - "translation": "你不能覆盖现有的 OutgoingWebhook。" + "translation": "您不能覆盖现有的传出 Webhook。" }, { "id": "app.webhooks.save_outgoing.app_error", - "translation": "无法保存 OutgoingWebhook。" + "translation": "无法保存传出 Webhook。" }, { "id": "app.webhooks.save_incoming.existing.app_error", - "translation": "您不能覆盖现有的 IncomingWebhook。" + "translation": "您不能覆盖现有的传入 Webhook。" }, { "id": "app.webhooks.save_incoming.app_error", - "translation": "无法保存 IncomingWebhook。" + "translation": "无法保存传入 Webhook。" }, { "id": "app.webhooks.permanent_delete_outgoing_by_user.app_error", - "translation": "无法删除 webhook。" + "translation": "无法删除 Webhook。" }, { "id": "app.webhooks.permanent_delete_outgoing_by_channel.app_error", - "translation": "无法删除 webhook。" + "translation": "无法删除 Webhook。" }, { "id": "app.webhooks.permanent_delete_incoming_by_user.app_error", - "translation": "无法删除 webhook。" + "translation": "无法删除 Webhook。" }, { "id": "app.webhooks.permanent_delete_incoming_by_channel.app_error", - "translation": "无法删除 webhook。" + "translation": "无法删除 Webhook。" }, { "id": "app.webhooks.get_outgoing_by_team.app_error", - "translation": "无法获取 webhook。" + "translation": "无法获取 Webhook。" }, { "id": "app.webhooks.get_outgoing_by_channel.app_error", - "translation": "无法获取 webhook。" + "translation": "无法获取 Webhook。" }, { "id": "app.webhooks.get_outgoing.app_error", - "translation": "无法获取 webhook。" + "translation": "无法获取 Webhook。" }, { "id": "app.webhooks.get_incoming_by_user.app_error", - "translation": "无法获取 webhook。" + "translation": "无法获取 Webhook。" }, { "id": "app.webhooks.get_incoming_by_channel.app_error", - "translation": "无法获取 webhook。" + "translation": "无法获取 Webhook。" }, { "id": "app.webhooks.get_incoming.app_error", - "translation": "无法获取 webhook。" + "translation": "无法获取 Webhook。" }, { "id": "app.webhooks.delete_outgoing.app_error", - "translation": "无法删除 webhook。" + "translation": "无法删除 Webhook。" }, { "id": "app.webhooks.delete_incoming.app_error", - "translation": "无法删除 webhook。" + "translation": "无法删除 Webhook。" }, { "id": "app.webhooks.analytics_outgoing_count.app_error", - "translation": "无法获得传出的 webhook 数。" + "translation": "无法获取传出 Webhook 数。" }, { "id": "app.webhooks.analytics_incoming_count.app_error", - "translation": "无法获得传入的 webhook 数。" + "translation": "无法获取传入 Webhook 数。" }, { "id": "app.role.save.invalid_role.app_error", - "translation": "无效的角色。" + "translation": "角色无效。" }, { "id": "app.role.save.insert.app_error", @@ -6035,23 +6035,23 @@ }, { "id": "ent.user.complete_switch_with_oauth.blank_email.app_error", - "translation": "无法用空的邮件地址完成 SAML 登入。" + "translation": "无法使用空邮箱地址完成 SAML 登录。" }, { "id": "ent.saml.save_user.username_exists.saml_app_error", - "translation": "已有帐号使用该用户名。请联系您的管理员。" + "translation": "已有账号使用该用户名。请联系您的管理员。" }, { "id": "ent.saml.save_user.email_exists.saml_app_error", - "translation": "这个账号不使用LDAP验证。请使用电子邮件和密码登陆。" + "translation": "此账号未使用 LDAP 验证。请使用邮箱和密码登录。" }, { "id": "ent.ldap.save_user.username_exists.ldap_app_error", - "translation": "已有帐号使用该用户名。请联系您的管理员。" + "translation": "已有账号使用该用户名。请联系您的管理员。" }, { "id": "ent.ldap.save_user.email_exists.ldap_app_error", - "translation": "这个账号不使用 AD/LDAP 验证。请使用电子邮件和密码登陆。" + "translation": "此账号未使用 AD/LDAP 验证。请使用邮箱和密码登录。" }, { "id": "ent.jobs.start_synchronize_job.timeout", @@ -6127,7 +6127,7 @@ }, { "id": "api.config.migrate_config.app_error", - "translation": "迁移设定储存失败。" + "translation": "迁移设置存储失败。" }, { "id": "api.admin.ldap.not_available.app_error", @@ -6363,7 +6363,7 @@ }, { "id": "app.email.rate_limit_exceeded.app_error", - "translation": "邀请电子邮件超出频率限制。计时器将在 {{.ResetAfter}} 秒后重置。请在 {{.RetryAfter}} 秒后重试。" + "translation": "邀请邮件超出频率限制。计时器将在 {{.ResetAfter}} 秒后重置。请在 {{.RetryAfter}} 秒后重试。" }, { "id": "app.email.no_rate_limiter.app_error", @@ -6399,7 +6399,7 @@ }, { "id": "app.channel.pinned_posts.app_error", - "translation": "无法找到标注的消息。" + "translation": "无法找到已固定消息。" }, { "id": "app.channel.permanent_delete_members_by_user.app_error", @@ -6415,7 +6415,7 @@ }, { "id": "app.channel.get_pinnedpost_count.app_error", - "translation": "无法获得该频道标注消息数。" + "translation": "无法获取该频道的固定消息数。" }, { "id": "app.channel.get_members.app_error", @@ -6463,15 +6463,15 @@ }, { "id": "api.user.update_password.user_and_hashed.app_error", - "translation": "只有系统管理员才能设置已哈希过的的密码。" + "translation": "只有系统管理员才能设置已哈希的密码。" }, { "id": "api.user.login_cws.license.error", - "translation": "禁止 CWS 登入。" + "translation": "禁止 CWS 登录。" }, { "id": "api.user.login_by_cws.invalid_token.app_error", - "translation": "无效的 CWS 令牌" + "translation": "CWS 令牌无效" }, { "id": "api.user.get_uploads_for_user.forbidden.app_error", @@ -6487,7 +6487,7 @@ }, { "id": "api.upload.upload_data.invalid_content_length", - "translation": "无效的 Content-Length。" + "translation": "Content-Length 无效。" }, { "id": "api.upload.get_upload.forbidden.app_error", @@ -6495,7 +6495,7 @@ }, { "id": "api.upgrade_to_enterprise_status.signature.app_error", - "translation": "Mattermost 无法升级至企业版。无法验证下载的二进制文件的数字签名。" + "translation": "Mattermost 无法升级至企业版。无法验证已下载二进制文件的数字签名。" }, { "id": "api.upgrade_to_enterprise_status.app_error", @@ -6507,15 +6507,15 @@ }, { "id": "api.upgrade_to_enterprise.invalid-user.app_error", - "translation": "Mattermost 无法升级至企业版。Mattermost 系统用户 {{.MattermostUsername}} 没有写入必需的二进制文件的权限。系统管理员可在服务器上运行以下命令以更新文件权限:\n\n```\nchown {{.MattermostUsername}} \"{{.Path}}\"\n```\n\n更改文件权限后,请重新尝试升级 Mattermost。当您升级并重启后,请务必恢复二进制文件权限:\n\n```\nchown {{.FileUsername}} \"{{.Path}}\"\n```" + "translation": "Mattermost 无法升级至企业版。Mattermost 系统用户 {{.MattermostUsername}} 没有写入所需二进制文件的权限。系统管理员可在服务器上运行以下命令以更新文件权限:\n\n```\nchown {{.MattermostUsername}} \"{{.Path}}\"\n```\n\n更改文件权限后,请重新尝试升级 Mattermost。当您升级并重启后,请务必恢复二进制文件权限:\n\n```\nchown {{.FileUsername}} \"{{.Path}}\"\n```" }, { "id": "api.upgrade_to_enterprise.invalid-user-and-permission.app_error", - "translation": "Mattermost 无法升级至企业版。Mattermost 系统用户 {{.MattermostUsername}} 没有写入必需的二进制文件的权限。系统管理员可在服务器上运行以下命令以更新文件权限:\n\n```\nchown {{.MattermostUsername}} \"{{.Path}}\"\nchmod +w \"{{.Path}}\"\n```\n\n更改文件权限后,请重新尝试升级 Mattermost。当您升级并重启后,请务必恢复二进制文件权限:\n\n```\nchown {{.FileUsername}} \"{{.Path}}\"\nchmod -w \"{{.Path}}\"\n```" + "translation": "Mattermost 无法升级至企业版。Mattermost 系统用户 {{.MattermostUsername}} 没有写入所需二进制文件的权限。系统管理员可在服务器上运行以下命令以更新文件权限:\n\n```\nchown {{.MattermostUsername}} \"{{.Path}}\"\nchmod +w \"{{.Path}}\"\n```\n\n更改文件权限后,请重新尝试升级 Mattermost。当您升级并重启后,请务必恢复二进制文件权限:\n\n```\nchown {{.FileUsername}} \"{{.Path}}\"\nchmod -w \"{{.Path}}\"\n```" }, { "id": "api.upgrade_to_enterprise.invalid-permission.app_error", - "translation": "Mattermost 无法升级至企业版。Mattermost 系统用户 {{.MattermostUsername}} 没有写入必需的二进制文件的权限。系统管理员可在服务器上运行以下命令以更新文件权限:\n\n```\nchmod +w \"{{.Path}}\"\n```\n\n更改文件权限后,请重新尝试升级 Mattermost。当您升级并重启后,请务必恢复二进制文件权限:\n\n```\nchmod -w \"{{.Path}}\"\n```" + "translation": "Mattermost 无法升级至企业版。Mattermost 系统用户 {{.MattermostUsername}} 没有写入所需二进制文件的权限。系统管理员可在服务器上运行以下命令以更新文件权限:\n\n```\nchmod +w \"{{.Path}}\"\n```\n\n更改文件权限后,请重新尝试升级 Mattermost。当您升级并重启后,请务必恢复二进制文件权限:\n\n```\nchmod -w \"{{.Path}}\"\n```" }, { "id": "api.upgrade_to_enterprise.generic_error.app_error", @@ -6527,7 +6527,7 @@ }, { "id": "api.upgrade_to_enterprise.already-enterprise.app_error", - "translation": "您不能升级因为您已正在运行 Mattermost 企业版。" + "translation": "您不能升级,因为您已经在运行 Mattermost 企业版。" }, { "id": "api.upgrade_to_enterprise.already-done.app_error", @@ -6555,11 +6555,11 @@ }, { "id": "api.preference.update_preferences.update_sidebar.app_error", - "translation": "无法更新侧栏以匹配更新的偏好设定" + "translation": "无法更新侧边栏以匹配更新的偏好设置" }, { "id": "api.preference.delete_preferences.update_sidebar.app_error", - "translation": "无法更新侧栏以匹配删除的偏好设定" + "translation": "无法更新侧边栏以匹配删除的偏好设置" }, { "id": "api.cloud.request_error", @@ -6615,7 +6615,7 @@ }, { "id": "app.channel.search_group_channels.app_error", - "translation": "无法以指定的用户和关键字获取群组频道。" + "translation": "无法以指定的用户和关键字获取群组消息频道。" }, { "id": "app.channel.search.app_error", @@ -6659,35 +6659,35 @@ }, { "id": "model.upload_session.is_valid.user_id.app_error", - "translation": "无效的 UserId" + "translation": "UserId 无效" }, { "id": "model.upload_session.is_valid.type.app_error", - "translation": "无效的类型" + "translation": "类型无效" }, { "id": "model.upload_session.is_valid.path.app_error", - "translation": "无效的路径" + "translation": "路径无效" }, { "id": "model.upload_session.is_valid.id.app_error", - "translation": "无效的 Id" + "translation": "ID 无效" }, { "id": "model.upload_session.is_valid.create_at.app_error", - "translation": "无效的 CreateAt" + "translation": "CreateAt 无效" }, { "id": "model.config.is_valid.directory.app_error", - "translation": "无效的本地储存目录。不能为空字串。" + "translation": "本地存储目录无效。不能为空字符串。" }, { "id": "model.upload_session.is_valid.filename.app_error", - "translation": "无效的 Filename" + "translation": "Filename 无效" }, { "id": "model.upload_session.is_valid.file_offset.app_error", - "translation": "无效的 FileOffset" + "translation": "FileOffset 无效" }, { "id": "model.search_params_list.is_valid.include_deleted_channels.app_error", @@ -6711,11 +6711,11 @@ }, { "id": "model.upload_session.is_valid.file_size.app_error", - "translation": "无效的 FileSize" + "translation": "FileSize 无效" }, { "id": "model.upload_session.is_valid.channel_id.app_error", - "translation": "无效的 ChannelId。" + "translation": "ChannelId 无效。" }, { "id": "model.plugin_command_error.error.app_error", @@ -6723,11 +6723,11 @@ }, { "id": "model.command.is_valid.plugin_id.app_error", - "translation": "无效的插件 id。" + "translation": "插件 ID 无效。" }, { "id": "ent.saml.do_login.invalid_signature.app_error", - "translation": "我们在身份提供者的回复中收到了无效的签名。请与系统管理员联系。" + "translation": "从身份提供者响应中收到的签名无效。请联系系统管理员。" }, { "id": "ent.ldap.no.users.checkcertificate", @@ -6755,7 +6755,7 @@ }, { "id": "ent.saml.do_login.invalid_time.app_error", - "translation": "从身份提供者的回复中含有无效的时间。请与系统管理员联系。" + "translation": "身份提供者响应中包含的时间无效。请联系系统管理员。" }, { "id": "app.channel.autofollow.app_error", @@ -6767,7 +6767,7 @@ }, { "id": "api.templates.email_us_anytime_at", - "translation": "随时通过电子邮件发送给我们 " + "translation": "随时给我们发送邮件: " }, { "id": "api.roles.patch_roles.not_allowed_permission.error", @@ -6807,19 +6807,19 @@ }, { "id": "app.user.get_by_username.app_error", - "translation": "找不到与您的用户名匹配的现有帐户。该团队可能需要团队所有者的邀请才能加入。" + "translation": "找不到与您的用户名匹配的现有账号。此团队可能需要团队所有者邀请才能加入。" }, { "id": "app.user.get_by_auth.other.app_error", - "translation": "尝试按身份验证类型查找帐户时遇到错误。" + "translation": "尝试按认证类型查找账号时遇到错误。" }, { "id": "app.user.get_by_auth.missing_account.app_error", - "translation": "找不到与您的验证类型匹配的现有帐户。该团队可能需要团队所有者的邀请才能加入。" + "translation": "找不到与您的验证类型匹配的现有账号。此团队可能需要团队所有者邀请才能加入。" }, { "id": "app.user.get.app_error", - "translation": "查找帐户时遇到错误。" + "translation": "查找账号时遇到错误。" }, { "id": "app.user.demote_user_to_guest.user_update.app_error", @@ -6867,7 +6867,7 @@ }, { "id": "app.group.id.app_error", - "translation": "无效的群组 id 属性。" + "translation": "群组 ID 属性无效。" }, { "id": "app.group.group_syncable_already_deleted", @@ -6923,7 +6923,7 @@ }, { "id": "app.user.verify_email.app_error", - "translation": "无法更新验证电子邮件字段。" + "translation": "无法更新邮箱验证字段。" }, { "id": "app.user.update_update.app_error", @@ -6939,7 +6939,7 @@ }, { "id": "app.user.update_thread_follow_for_user.app_error", - "translation": "无法更新主题的关注状态" + "translation": "无法更新话题的关注状态。" }, { "id": "app.user.update_failed_pwd_attempts.app_error", @@ -6947,11 +6947,11 @@ }, { "id": "app.user.update_auth_data.email_exists.app_error", - "translation": "无法将帐户切换到{{.Service}}。使用电子邮件{{.Email}}的帐户已存在。" + "translation": "无法将账号切换到 {{.Service}}。使用邮箱地址 {{.Email}} 的账号已存在。" }, { "id": "app.user.update_auth_data.app_error", - "translation": "无法更新身份验证数据。" + "translation": "无法更新认证数据。" }, { "id": "app.user.update_active_for_multiple_users.updating.app_error", @@ -6959,11 +6959,11 @@ }, { "id": "app.user.update.finding.app_error", - "translation": "查找帐户时遇到错误。" + "translation": "查找账号时遇到错误。" }, { "id": "app.user.update.find.app_error", - "translation": "找不到要更新的现有帐户。" + "translation": "找不到要更新的现有账号。" }, { "id": "app.user.search.app_error", @@ -6971,7 +6971,7 @@ }, { "id": "app.user.save.username_exists.app_error", - "translation": "具有该用户名的帐户已存在。" + "translation": "具有该用户名的账号已存在。" }, { "id": "app.user.save.existing.app_error", @@ -6979,11 +6979,11 @@ }, { "id": "app.user.save.email_exists.app_error", - "translation": "具有该电子邮件的帐户已存在。" + "translation": "使用该邮箱地址的账号已存在。" }, { "id": "app.user.save.app_error", - "translation": "无法保存账户。" + "translation": "无法保存账号。" }, { "id": "app.user.promote_guest.user_update.app_error", @@ -6991,7 +6991,7 @@ }, { "id": "app.user.permanent_delete.app_error", - "translation": "无法删除现有帐户。" + "translation": "无法删除现有账号。" }, { "id": "app.user.missing_account.const", @@ -7047,11 +7047,11 @@ }, { "id": "api.oauth.redirecting_back", - "translation": "正在重定向回应用程序。" + "translation": "正在重定向回应用。" }, { "id": "api.oauth.close_browser", - "translation": "你可以关闭此浏览器窗口。" + "translation": "您可以关闭此浏览器窗口。" }, { "id": "api.oauth.auth_complete", @@ -7059,7 +7059,7 @@ }, { "id": "api.job.unable_to_download_job.incorrect_job_type", - "translation": "暂不支持你要下载的任务类型" + "translation": "暂不支持您要下载的任务类型" }, { "id": "api.file.file_mod_time.app_error", @@ -7067,7 +7067,7 @@ }, { "id": "api.config.update_config.not_allowed_security.app_error", - "translation": "因为安全原因,不允许更改{{.Name}}。" + "translation": "出于安全原因,不允许更改 {{.Name}}。" }, { "id": "api.back_to_app", @@ -7083,11 +7083,11 @@ }, { "id": "api.invalid_redirect_url", - "translation": "无效的重定向网址" + "translation": "重定向 URL 无效" }, { "id": "api.invalid_custom_url_scheme", - "translation": "无效的自定义网址方案" + "translation": "自定义 URL 方案无效" }, { "id": "api.getThreadsForUser.bad_params", @@ -7103,7 +7103,7 @@ }, { "id": "model.config.is_valid.sql_conn_max_idle_time_milliseconds.app_error", - "translation": "无效的 SQL 连接最大空闲时间设定。必须为非负数。" + "translation": "SQL 连接最大空闲时间设置无效。必须为非负数。" }, { "id": "model.config.is_valid.export.retention_days_too_low.app_error", @@ -7115,7 +7115,7 @@ }, { "id": "mfa.deactivate.app_error", - "translation": "无法更新用户的两步验证活动状态。" + "translation": "无法更新用户的多因素认证状态。" }, { "id": "mfa.activate.app_error", @@ -7203,7 +7203,7 @@ }, { "id": "api.command_custom_status.success", - "translation": "你的状态已设为 “{{.EmojiName}} {{.StatusMessage}}”。你可在频道侧栏更改你的状态。" + "translation": "您的状态已设置为“{{.EmojiName}} {{.StatusMessage}}”。您可以在频道侧边栏更改状态。" }, { "id": "api.command_custom_status.name", @@ -7215,7 +7215,7 @@ }, { "id": "api.command_custom_status.desc", - "translation": "设定或清除您的状态" + "translation": "设置或清除您的状态" }, { "id": "api.command_custom_status.clear.success", @@ -7227,7 +7227,7 @@ }, { "id": "api.command_custom_status.app_error", - "translation": "设定状态错误。" + "translation": "设置状态时出错。" }, { "id": "api.team.invite_guests_to_channels.invalid_body.app_error", @@ -7239,11 +7239,11 @@ }, { "id": "api.cloud.cws_webhook_event_missing_error", - "translation": "Webhook 事件未处理。它丢失或无效。" + "translation": "Webhook 事件未处理。它缺失或无效。" }, { "id": "api.templates.welcome_body.subTitle2", - "translation": "单击下方按钮以验证您的邮箱地址。" + "translation": "点击下方按钮以验证您的邮箱地址。" }, { "id": "api.templates.welcome_body.subTitle1", @@ -7267,7 +7267,7 @@ }, { "id": "api.templates.verify_body.subTitle2", - "translation": "单击下方按钮以验证您的邮箱地址。" + "translation": "点击下方按钮以验证您的邮箱地址。" }, { "id": "api.templates.verify_body.subTitle1", @@ -7283,11 +7283,11 @@ }, { "id": "api.templates.reset_body.subTitle", - "translation": "单击下面的按钮以重置密码。如果您未请求重置密码,则可忽略此电子邮件。" + "translation": "点击下方按钮以重置密码。如果您未请求重置密码,则可忽略此邮件。" }, { "id": "api.templates.reset_body.info", - "translation": "密码重置链接将在24小时后失效。" + "translation": "密码重置链接将在 24 小时后失效。" }, { "id": "api.templates.questions_footer.title", @@ -7355,11 +7355,11 @@ }, { "id": "api.templates.cloud_welcome_email.add_apps_sub_info", - "translation": "使用 Github、Jira 以及 Zoom 等工具简化您的工作.探索我们的所有集成产品" + "translation": "使用 GitHub、Jira 以及 Zoom 等工具简化您的工作。探索我们的所有集成产品" }, { "id": "api.templates.cloud_welcome_email.add_apps_info", - "translation": "将应用程序添加到您的工作区" + "translation": "将应用添加到您的工作区" }, { "id": "store.sql_file_info.search.disabled", @@ -7383,7 +7383,7 @@ }, { "id": "api.user.send_cloud_welcome_email.error", - "translation": "无法发送云欢迎电子邮件" + "translation": "无法发送云欢迎邮件" }, { "id": "api.templates.questions_footer.info", @@ -7391,7 +7391,7 @@ }, { "id": "api.templates.cloud_welcome_email.start_questions", - "translation": "对入门有疑问吗?给我们发电子邮件" + "translation": "对入门有疑问吗?给我们发送邮件" }, { "id": "api.templates.cloud_welcome_email.invite_sub_info", @@ -7415,11 +7415,11 @@ }, { "id": "api.command_remote.site_url_not_set", - "translation": "未设置站点网址。请在系统控制台 > 环境 > 网页服务器设置。" + "translation": "未设置站点 URL。请在系统控制台 > 环境 > 网页服务器设置。" }, { "id": "api.command_remote.remote_table_header", - "translation": "| 安全连接 | 显示名 | 连接 ID | 站点网址 | 默认团队 | 已接受邀请 | 在线 | 最近 ping | 已删除 |" + "translation": "| 安全连接 | 显示名 | 连接 ID | 站点 URL | 默认团队 | 已接受邀请 | 在线 | 最近 ping | 已删除 |" }, { "id": "api.command_remote.permission_required", @@ -7491,7 +7491,7 @@ }, { "id": "api.command_remote.invite_summary", - "translation": "将以下 AES 256-bit 加密的邀请与密码一起发送给外部 Mattermost 管理员。他们将使用 `{{.Command}}` 斜杠命令来接受邀请。\n\n```\n{{.Invitation}}\n```\n\n**确保远程站点可以通过 {{.SiteURL}} 访问您的 Mattermost 实例**" + "translation": "将以下 AES 256 位加密的邀请与密码一起发送给外部 Mattermost 管理员。对方将使用 `{{.Command}}` 斜杠命令来接受邀请。\n\n```\n{{.Invitation}}\n```\n\n**确保远程站点可以通过 {{.SiteURL}} 访问您的 Mattermost 实例**" }, { "id": "api.command_remote.invite_password.hint", @@ -7559,7 +7559,7 @@ }, { "id": "api.command_remote.accept_invitation", - "translation": "邀请已接受并确认。\n站点网址:{{.SiteURL}}" + "translation": "邀请已接受并确认。\n站点 URL:{{.SiteURL}}" }, { "id": "api.command_channel_purpose.update_channel.max_length", @@ -7583,15 +7583,15 @@ }, { "id": "api.command_remote.remove_remote_id.help", - "translation": "要删除的安全连接 Id。" + "translation": "要删除的安全连接 ID。" }, { "id": "api.channel.create_channel.direct_channel.team_restricted_error", - "translation": "无法在这些用户之间创建直连频道因为他们不属于同一个团队。" + "translation": "无法在这些用户之间创建私信频道,因为他们不属于同一个团队。" }, { "id": "api.admin.saml.failure_reset_authdata_to_email.app_error", - "translation": "重置 AuthData 栏到邮件失败。" + "translation": "将 AuthData 字段重置为邮箱失败。" }, { "id": "api.command_share.remote_not_valid", @@ -7599,7 +7599,7 @@ }, { "id": "api.command_share.remote_id_invalid.error", - "translation": "无效的安全连接 ID:{{.Error}}" + "translation": "安全连接 ID:{{.Error}} 无效" }, { "id": "api.command_share.remote_already_invited", @@ -7607,7 +7607,7 @@ }, { "id": "api.command_share.permission_required", - "translation": "您需要`{{.Permission}}`权限才能管理共享频道。" + "translation": "您需要 `{{.Permission}}` 权限才能管理共享频道。" }, { "id": "api.command_share.not_shared_channel_unshare", @@ -7655,7 +7655,7 @@ }, { "id": "api.command_share.could_not_uninvite.error", - "translation": "无法取消邀请`{{.RemoteId}}`:{{.Error}}" + "translation": "无法取消邀请 `{{.RemoteId}}`:{{.Error}}" }, { "id": "api.command_share.check_channel_exist.error", @@ -7679,11 +7679,11 @@ }, { "id": "api.server.license_up_for_renewal.error_sending_email", - "translation": "未能为续订电子邮件发送许可证" + "translation": "无法发送许可证续订邮件" }, { "id": "api.remote_cluster.update_not_unique.app_error", - "translation": "已存在具有相同网址的安全连接。" + "translation": "已存在具有相同 URL 的安全连接。" }, { "id": "api.remote_cluster.update.app_error", @@ -7703,11 +7703,11 @@ }, { "id": "api.remote_cluster.invalid_topic.app_error", - "translation": "无效的主题。" + "translation": "主题无效。" }, { "id": "api.remote_cluster.invalid_id.app_error", - "translation": "无效的 id。" + "translation": "ID 无效。" }, { "id": "api.remote_cluster.get.app_error", @@ -7731,11 +7731,11 @@ }, { "id": "api.job.unable_to_create_job.incorrect_job_type", - "translation": "您尝试创建的作业的作业类型无效" + "translation": "您尝试创建的作业类型无效" }, { "id": "api.job.retrieve.nopermissions", - "translation": "您尝试检索的作业的作业类型不包含权限" + "translation": "您尝试检索的作业类型不包含权限" }, { "id": "api.file.test_connection_s3_bucket_does_not_exist.app_error", @@ -7743,11 +7743,11 @@ }, { "id": "api.file.test_connection_s3_auth.app_error", - "translation": "无法连接到 S3。验证您的 Amazon S3 连接授权参数和身份验证设置。" + "translation": "无法连接到 S3。请检查您的 Amazon S3 连接授权参数和认证设置。" }, { "id": "api.email_batching.send_batched_email_notification.title", - "translation": "你有新消息" + "translation": "您有新消息" }, { "id": "api.email_batching.send_batched_email_notification.time", @@ -7799,11 +7799,11 @@ }, { "id": "api.command_share.unknown_action", - "translation": "未知操作`{{.Action}}`。可用操作:{{.Actions}}" + "translation": "未知操作 `{{.Action}}`。可用操作:{{.Actions}}" }, { "id": "api.command_share.uninvite_remote_id.help", - "translation": "取消邀请的安全连接的 ID。" + "translation": "要取消邀请的安全连接 ID。" }, { "id": "api.command_share.uninvite_remote.help", @@ -7835,15 +7835,15 @@ }, { "id": "api.command_share.remote_uninvited", - "translation": "已取消`{{.RemoteId}}`的的安全连接受邀。" + "translation": "已取消 `{{.RemoteId}}` 的安全连接邀请。" }, { "id": "api.command_share.remote_table_header", - "translation": "|安全连接|网站网址|只读|接受邀请|在线 |上次同步|" + "translation": "|安全连接|站点 URL|只读|接受邀请|在线 |上次同步|" }, { "id": "api.command_share.remote_id.help", - "translation": "现有安全连接 ID。请参阅 `secure-connection`命令以添加安全连接。" + "translation": "现有安全连接 ID。请参阅 `secure-connection` 命令以添加安全连接。" }, { "id": "sharedchannel.permalink.not_found", @@ -7859,7 +7859,7 @@ }, { "id": "ent.data_retention.policies.invalid_policy", - "translation": "无效的政策。" + "translation": "政策无效。" }, { "id": "ent.data_retention.policies.internal_error", @@ -7871,7 +7871,7 @@ }, { "id": "app.valid_password_generic.app_error", - "translation": "无效的密码" + "translation": "密码无效" }, { "id": "app.user.send_auto_response.app_error", @@ -7903,7 +7903,7 @@ }, { "id": "app.notification.footer.info", - "translation": " 并转到设定 > 通知" + "translation": " 并转到设置 > 通知" }, { "id": "app.notification.body.mention.title", @@ -7951,15 +7951,15 @@ }, { "id": "api.user.invalidate_verify_email_tokens_parse.error", - "translation": "无法在让电子邮件验证令牌无效时解析令牌" + "translation": "使邮箱验证令牌失效时,无法解析令牌" }, { "id": "api.user.invalidate_verify_email_tokens_delete.error", - "translation": "无法在让电子邮件验证令牌无效时移除令牌" + "translation": "使邮箱验证令牌失效时,无法移除令牌" }, { "id": "api.user.invalidate_verify_email_tokens.error", - "translation": "无法在让电子邮件验证令牌无效时按类型获取令牌" + "translation": "使邮箱验证令牌失效时,无法按类型获取令牌" }, { "id": "api.templates.license_up_for_renewal_title", @@ -7991,7 +7991,7 @@ }, { "id": "app.user.store_is_empty.app_error", - "translation": "检查用户储存是否为空失败。" + "translation": "检查用户存储是否为空失败。" }, { "id": "app.notification.body.thread.title", @@ -7999,7 +7999,7 @@ }, { "id": "api.post.send_notification_and_forget.push_comment_on_crt_thread", - "translation": " 回复了您关注的主题。" + "translation": " 回复了您关注的话题。" }, { "id": "api.push_notification.title.collapsed_threads", @@ -8011,7 +8011,7 @@ }, { "id": "api.post.send_notification_and_forget.push_comment_on_crt_thread_dm", - "translation": " 回复了主题。" + "translation": " 回复了话题。" }, { "id": "api.config.reload_config.app_error", @@ -8047,35 +8047,35 @@ }, { "id": "model.user.is_valid.roles_limit.app_error", - "translation": "无效的用户角色,超过 {{.Limit}} 个字符。" + "translation": "用户角色无效,超过 {{.Limit}} 个字符。" }, { "id": "model.team_member.is_valid.roles_limit.app_error", - "translation": "无效的团队成员角色,超过 {{.Limit}} 个字符。" + "translation": "团队成员角色无效,超过 {{.Limit}} 个字符。" }, { "id": "model.session.is_valid.user_id.app_error", - "translation": "无效的会话 UserId 字段。" + "translation": "会话 UserId 字段无效。" }, { "id": "model.session.is_valid.roles_limit.app_error", - "translation": "无效的会话角色,超过 {{.Limit}} 个字符。" + "translation": "会话角色无效,超过 {{.Limit}} 个字符。" }, { "id": "model.session.is_valid.id.app_error", - "translation": "无效的会话 Id 字段。" + "translation": "会话 ID 字段无效。" }, { "id": "model.session.is_valid.create_at.app_error", - "translation": "无效的会话 CreateAt 字段。" + "translation": "会话 CreateAt 字段无效。" }, { "id": "model.channel_member.is_valid.roles_limit.app_error", - "translation": "无效频道成员角色,长度超过 {{.Limit}} 个字符的。" + "translation": "频道成员角色无效,长度超过 {{.Limit}} 个字符。" }, { "id": "api.user.create_user.bad_token_email_data.app_error", - "translation": "令牌中的电子邮件与用户数据中的电子邮件不一致。" + "translation": "令牌中的邮箱地址与用户数据中的邮箱地址不一致。" }, { "id": "ent.elasticsearch.getAllTeamMembers.error", @@ -8091,7 +8091,7 @@ }, { "id": "app.user.get_thread_count_for_user.app_error", - "translation": "无法获取用户的主题数。" + "translation": "无法获取用户的话题数。" }, { "id": "app.session.extend_session_expiry.app_error", @@ -8111,7 +8111,7 @@ }, { "id": "model.channel.is_valid.1_or_more.app_error", - "translation": "名字必须是1个或者多个小写字母的字串。" + "translation": "名称必须是 1 个或多个小写字母组成的字符串。" }, { "id": "app.system.get_onboarding_request.app_error", @@ -8151,7 +8151,7 @@ }, { "id": "api.user.authorize_oauth_user.saml_response_too_long.app_error", - "translation": "SAML的请求信息太长" + "translation": "SAML 请求信息太长" }, { "id": "api.templates.invite_team_and_channels_subject", @@ -8183,7 +8183,7 @@ }, { "id": "api.license_error", - "translation": "api节点需要一个 license授权" + "translation": "API 节点需要许可证。" }, { "id": "api.license.request_trial_license.embargoed", @@ -8191,7 +8191,7 @@ }, { "id": "api.getThreadsForUser.bad_only_params", - "translation": "参数 getThreadsForUser 的 OnlyThreads 和 OnlyTotals 是相互排斥的(互诉的)" + "translation": "参数 getThreadsForUser 的 OnlyThreads 和 OnlyTotals 互斥" }, { "id": "api.file.test_connection_s3_settings_nil.app_error", @@ -8227,7 +8227,7 @@ }, { "id": "api.custom_groups.license_error", - "translation": "没有为自定义组授权" + "translation": "自定义组需要许可证。" }, { "id": "api.custom_groups.count_err", @@ -8239,11 +8239,11 @@ }, { "id": "model.member.is_valid.emails.app_error", - "translation": "电子邮件列表为空" + "translation": "邮箱列表为空" }, { "id": "model.member.is_valid.channel.app_error", - "translation": "无效的频道名" + "translation": "频道名无效" }, { "id": "model.emoji.system_emoji_name.app_error", @@ -8251,7 +8251,7 @@ }, { "id": "app.user.update_thread_read_for_user_by_post.app_error", - "translation": "无效的 post_id" + "translation": "post_id 无效" }, { "id": "app.post.analytics_teams_count.app_error", @@ -8275,15 +8275,15 @@ }, { "id": "model.config.is_valid.image_decoder_concurrency.app_error", - "translation": "无效的解码器并发 {{.Value}}。 应该是正数或 -1。" + "translation": "解码器并发 {{.Value}} 无效。 应该是正数或 -1。" }, { "id": "model.config.is_valid.elastic_search.bulk_indexing_batch_size.app_error", - "translation": "搜索的批量索引的批量大小必须至少是 {{.BatchSize}}。" + "translation": "搜索批量索引的批量大小必须至少是 {{.BatchSize}}。" }, { "id": "model.config.is_valid.amazons3_timeout.app_error", - "translation": "无效的超时值 {{.Value}}.应该是一个正数。" + "translation": "超时值 {{.Value}}.应该是一个正数无效。" }, { "id": "common.parse_error_int64", @@ -8319,7 +8319,7 @@ }, { "id": "api.team.invite_guests_to_channels.license.error", - "translation": "您的许可证不支持访客帐号" + "translation": "您的许可证不支持访客账号" }, { "id": "api.command_help.success", @@ -8327,7 +8327,7 @@ }, { "id": "api.team.invite_guests_to_channels.disabled.error", - "translation": "访客帐户已禁用" + "translation": "访客账号已禁用" }, { "id": "api.command_marketplace.name", @@ -8359,15 +8359,15 @@ }, { "id": "api.acknowledgement.save.archived_channel.app_error", - "translation": "您无法在已归档的频道中新增已读标识。" + "translation": "您无法在已归档频道中新增已读确认。" }, { "id": "api.acknowledgement.delete.deadline.app_error", - "translation": "您无法在 5 分钟后移除已读标识。" + "translation": "您无法在 5 分钟后移除已读确认。" }, { "id": "api.acknowledgement.delete.archived_channel.app_error", - "translation": "您无法从已归档的频道中移除已阅标识。" + "translation": "您无法从已归档频道中移除已读确认。" }, { "id": "model.group.name.reserved_name.app_error", @@ -8375,7 +8375,7 @@ }, { "id": "model.draft.is_valid.user_id.app_error", - "translation": "不正确的 user id。" + "translation": "用户 ID 不正确。" }, { "id": "model.draft.is_valid.update_at.app_error", @@ -8383,19 +8383,19 @@ }, { "id": "model.draft.is_valid.root_id.app_error", - "translation": "不正确的 root id。" + "translation": "root_id 不正确。" }, { "id": "model.draft.is_valid.props.app_error", - "translation": "不正确的 props。" + "translation": "props 不正确。" }, { "id": "model.draft.is_valid.priority.app_error", - "translation": "不正确的优先级" + "translation": "优先级不正确。" }, { "id": "model.draft.is_valid.file_ids.app_error", - "translation": "不正确的 file id。" + "translation": "file_id 不正确。" }, { "id": "model.draft.is_valid.create_at.app_error", @@ -8403,15 +8403,15 @@ }, { "id": "model.draft.is_valid.channel_id.app_error", - "translation": "不正确的 channel id。" + "translation": "channel_id 不正确。" }, { "id": "model.acknowledgement.is_valid.user_id.app_error", - "translation": "不正确的 user id。" + "translation": "用户 ID 不正确。" }, { "id": "model.acknowledgement.is_valid.post_id.app_error", - "translation": "不正确的 post id。" + "translation": "消息 ID 不正确。" }, { "id": "ent.saml.configure.certificate_parse_error.app_error", @@ -8459,7 +8459,7 @@ }, { "id": "app.import.validate_user_teams_import_data.invalid_auth_service.error", - "translation": "无效的认证服务:{{.AuthService}}" + "translation": "认证服务:{{.AuthService}} 无效" }, { "id": "app.group.username_conflict", @@ -8547,7 +8547,7 @@ }, { "id": "api.system.logs.invalidFilter", - "translation": "无效的日志过滤器" + "translation": "日志过滤器无效" }, { "id": "api.server.hosted_signup_unavailable.error", @@ -8559,7 +8559,7 @@ }, { "id": "app.oauth.remove_auth_data_by_client_id.app_error", - "translation": "不能删除oauth认证信息。" + "translation": "无法删除 OAuth 认证信息。" }, { "id": "api.templates.license_up_for_renewal_contact_sales", @@ -8567,7 +8567,7 @@ }, { "id": "api.license.request-trial.bad-request.business-email", - "translation": "无效的用于试用的商务邮箱" + "translation": "用于试用的商务邮箱无效" }, { "id": "api.error_no_organization_name_provided_for_self_hosted_onboarding", @@ -8759,7 +8759,7 @@ }, { "id": "app.channel.get_common_teams.incorrect_channel_type", - "translation": "频道不是一个群组消息。" + "translation": "频道不是群组消息。" }, { "id": "app.channel.get_common_teams.store_get_common_teams_error", @@ -8767,7 +8767,7 @@ }, { "id": "app.channel.gm_conversion_set_categories.delete_all.error", - "translation": "无法删除已转换的群组消息的现有侧边栏分类。" + "translation": "无法删除已转换群组消息的现有侧边栏分类。" }, { "id": "app.channel.group_message_conversion.channel_member_missing", @@ -8779,11 +8779,11 @@ }, { "id": "app.channel.group_message_conversion.original_channel_not_gm", - "translation": "被转换的频道不是一个群组消息。你只能转换群组消息" + "translation": "要转换的频道不是群组消息。您只能转换群组消息。" }, { "id": "app.channel.group_message_conversion.post_message.error", - "translation": "创建群组消息到频道转换消息失败" + "translation": "创建群组消息到频道的转换消息失败" }, { "id": "app.desktop_token.generateServerToken.invalid_or_expired", @@ -8807,11 +8807,11 @@ }, { "id": "app.reaction.permanent_delete_by_user.app_error", - "translation": "无法删除用户的反应。" + "translation": "无法删除用户的表情回应。" }, { "id": "api.channel.gm_to_channel_conversion.not_allowed_for_user.request_error", - "translation": "用户未被允许将群组消息转换为私人频道" + "translation": "用户不允许将群组消息转换为私有频道" }, { "id": "api.channel.group_message.converted.to_private_channel", @@ -8819,15 +8819,15 @@ }, { "id": "api.channel.patch_update_channel.update_direct_or_group_messages_not_allowed.app_error", - "translation": "您不被允许更新直接消息或群组消息的名称、显示名称和目的。" + "translation": "您不能更新私信或群组消息的名称、显示名称和用途。" }, { "id": "api.channel.update_channel.update_direct_or_group_messages_not_allowed.app_error", - "translation": "您不被允许更新直接或群组消息的名称、显示名称和目的。" + "translation": "您不能更新私信或群组消息的名称、显示名称和用途。" }, { "id": "api.command_invite.channel_constrained_user_denied", - "translation": "该频道由群组管理。  该用户不是与该频道同步的群组的成员。" + "translation": "该频道由群组管理。该用户不是与该频道同步群组的成员。" }, { "id": "api.command_invite.successOverflow", @@ -8839,7 +8839,7 @@ }, { "id": "api.command_invite.user_not_in_team.messageOverflow", - "translation": "一旦{{.FirstUser}}和{{.Others}}等人成为**{{.Team}}**团队的成员,您可以将他们添加到此频道中。" + "translation": "一旦 {{.FirstUser}} 和 {{.Others}} 等人成为 **{{.Team}}** 团队的成员,您就可以将他们添加到此频道。" }, { "id": "humanize.list_join", @@ -8859,7 +8859,7 @@ }, { "id": "app.thread.mark_all_as_read_by_channels.app_error", - "translation": "无法将频道中的所有主题标记为已读" + "translation": "无法将频道中的所有话题标记为已读" }, { "id": "api.emoji.get_multiple_by_name_too_many.request_error", @@ -8871,7 +8871,7 @@ }, { "id": "model.config.is_valid.log.advanced_logging.parse", - "translation": "无效的格式:{{.Error}}" + "translation": "格式:{{.Error}} 无效" }, { "id": "api.context.ip_filtering.apply_ip_filters.app_error", @@ -8895,15 +8895,15 @@ }, { "id": "api.templates.ip_filters_changed.subTitle", - "translation": "@{{ .InitiatingUsername }} 更改了您在 {{ .SiteURL }} 的工作区的 IP 过滤设置" + "translation": "@{{ .InitiatingUsername }} 更改了您在 {{ .SiteURL }} 工作区的 IP 过滤设置" }, { "id": "api.templates.ip_filters_changed.subject", - "translation": "对您的工作区的 IP 过滤器的更改" + "translation": "您的工作区 IP 过滤器已更改" }, { "id": "api.templates.ip_filters_changed.title", - "translation": "您的工作区的 IP 过滤器的更改" + "translation": "您的工作区 IP 过滤器已更改" }, { "id": "api.templates.ip_filters_changed_footer.contact_support", @@ -8931,7 +8931,7 @@ }, { "id": "model.outgoing_oauth_connection.is_valid.oauth_token_url.error", - "translation": "无效的 oauth 令牌 url。" + "translation": "OAuth 令牌 URL 无效。" }, { "id": "app.plugin.subpath_parse.app_error", @@ -8943,11 +8943,11 @@ }, { "id": "model.outgoing_oauth_connection.is_valid.client_id.error", - "translation": "无效的客户端 id。" + "translation": "客户端 ID 无效。" }, { "id": "model.outgoing_oauth_connection.is_valid.client_secret.error", - "translation": "无效的客户端密钥。" + "translation": "客户端密钥无效。" }, { "id": "model.outgoing_oauth_connection.is_valid.create_at.error", @@ -8955,23 +8955,23 @@ }, { "id": "model.outgoing_oauth_connection.is_valid.creator_id.error", - "translation": "无效的创建者 id。" + "translation": "创建者 ID 无效。" }, { "id": "model.outgoing_oauth_connection.is_valid.grant_type.error", - "translation": "无效的授权类型。" + "translation": "授权类型无效。" }, { "id": "model.outgoing_oauth_connection.is_valid.id.error", - "translation": "无效的 id。" + "translation": "ID 无效。" }, { "id": "model.outgoing_oauth_connection.is_valid.name.error", - "translation": "无效的名称。" + "translation": "名称无效。" }, { "id": "model.outgoing_oauth_connection.is_valid.password_credentials.error", - "translation": "无效的密码凭据。" + "translation": "密码凭据无效。" }, { "id": "model.outgoing_oauth_connection.is_valid.update_at.error", @@ -8979,7 +8979,7 @@ }, { "id": "app.reaction.save.save.too_many_reactions", - "translation": "此消息已达到反应上限。" + "translation": "此消息已达到表情回应上限。" }, { "id": "model.config.is_valid.message_export.global_relay.customer_type_custom.app_error", @@ -8999,7 +8999,7 @@ }, { "id": "api.getUsersForReporting.invalid_team_filter", - "translation": "提供的团队ID无效。" + "translation": "提供的团队 ID 无效。" }, { "id": "app.report.get_user_report.store_error", @@ -9075,15 +9075,15 @@ }, { "id": "ent.outgoing_oauth_connections.delete_connection.app_error", - "translation": "删除对外 oauth 连接时出现错误。" + "translation": "删除对外 OAuth 连接时出现错误。" }, { "id": "ent.outgoing_oauth_connections.get_connections.app_error", - "translation": "获取对外 oauth 连接时出现错误。" + "translation": "获取对外 OAuth 连接时出现错误。" }, { "id": "ent.outgoing_oauth_connections.save_connection.app_error", - "translation": "保存此对外 oauth 连接时出现错误:{{ .Error }}" + "translation": "保存此对外 OAuth 连接时出现错误:{{ .Error }}" }, { "id": "api.command_remote.confirm_invitation.error", @@ -9091,15 +9091,15 @@ }, { "id": "ent.outgoing_oauth_connections.get_connection.app_error", - "translation": "获取对外 oauth 连接时出现错误。" + "translation": "获取对外 OAuth 连接时出现错误。" }, { "id": "ent.outgoing_oauth_connections.get_connection.not_found.app_error", - "translation": "未找到该对外 oauth 连接。" + "translation": "未找到该对外 OAuth 连接。" }, { "id": "ent.outgoing_oauth_connections.update_connection.app_error", - "translation": "更新此对外 oauth 连接时出现错误:{{ .Error }}" + "translation": "更新此对外 OAuth 连接时出现错误:{{ .Error }}" }, { "id": "model.config.is_valid.data_retention.message_retention_misconfiguration.app_error", @@ -9151,7 +9151,7 @@ }, { "id": "model.config.is_valid.max_payload_size.app_error", - "translation": "服务设置中包含无效的最大载荷大小。必须是大于 0 的整数。" + "translation": "服务设置中的最大载荷大小无效。必须是大于 0 的整数。" }, { "id": "app.report.start_users_batch_export.license_error", @@ -9231,7 +9231,7 @@ }, { "id": "api.context.outgoing_oauth_connection.update_connection.input_error", - "translation": "无效的输入参数。" + "translation": "输入参数无效。" }, { "id": "api.context.outgoing_oauth_connection.validate_connection_credentials.app_error", @@ -9251,7 +9251,7 @@ }, { "id": "ent.outgoing_oauth_connections.feature_disabled", - "translation": "在这个服务器上不支持传出 OAuth 连接。" + "translation": "此服务器不支持传出 OAuth 连接。" }, { "id": "ent.outgoing_oauth_connections.get_connection_for_audience.not_found.app_error", @@ -9263,15 +9263,15 @@ }, { "id": "ent.outgoing_oauth_connections.save_connection.audience_invalid", - "translation": "提供的 Audience 无效: {{ .Error }}" + "translation": "提供的 Audience 无效:{{ .Error }}" }, { "id": "ent.outgoing_oauth_connections.update_connection.audience_invalid", - "translation": "提供的 Audience 无效: {{ .Error }}" + "translation": "提供的 Audience 无效:{{ .Error }}" }, { "id": "api.saml.invalid_email_token.app_error", - "translation": "不正确的 email_token" + "translation": "email_token 不正确。" }, { "id": "ent.outgoing_oauth_connections.license_disable.app_error", @@ -9279,7 +9279,7 @@ }, { "id": "api.context.outgoing_oauth_connection.create_connection.input_error", - "translation": "无效的输入参数。" + "translation": "输入参数无效。" }, { "id": "api.context.outgoing_oauth_connection.not_available.configuration_disabled", @@ -9291,15 +9291,15 @@ }, { "id": "ent.outgoing_oauth_connections.get_connection_for_audience.app_error", - "translation": "取得 Audience 的传出 OAuth 连接时出现错误。" + "translation": "获取 Audience 的传出 OAuth 连接时出现错误。" }, { "id": "ent.outgoing_oauth_connections.update_connection.audience_duplicated", - "translation": "提供的 Audience 已经存在一个用于传出的 OAuth连接: {{ .Audience }}" + "translation": "提供的 Audience 已经存在一个用于传出的 OAuth 连接:{{ .Audience }}" }, { "id": "ent.outgoing_oauth_connections.authenticate.app_error", - "translation": "在验证传出 OAuth 连接时发生了错误: {{ .Error }}" + "translation": "验证传出 OAuth 连接时发生错误:{{ .Error }}" }, { "id": "basic_security_check.url.too_long_error", @@ -9311,7 +9311,7 @@ }, { "id": "model.user.is_valid.invalidProperty.app_error", - "translation": "无效的属性(自定义状态)" + "translation": "属性(自定义状态) 无效" }, { "id": "api.server.cws.disabled", @@ -9403,15 +9403,15 @@ }, { "id": "model.channel_bookmark.is_valid.file_id.missing_or_invalid.app_error", - "translation": "文件 id 缺少或无效。" + "translation": "文件 ID 缺少或无效。" }, { "id": "model.channel_bookmark.is_valid.id.app_error", - "translation": "Id 无效。" + "translation": "ID 无效。" }, { "id": "model.channel_bookmark.is_valid.image_url.app_error", - "translation": "图像 url 无效。" + "translation": "图像 URL 无效。" }, { "id": "model.channel_bookmark.is_valid.link_file.app_error", @@ -9419,19 +9419,19 @@ }, { "id": "model.channel_bookmark.is_valid.owner_id.app_error", - "translation": "所属者 id 无效。" + "translation": "所有者 ID 无效。" }, { "id": "model.channel_bookmark.is_valid.link_url.missing_or_invalid.app_error", - "translation": "链接 url 缺少或无效。" + "translation": "链接 URL 缺少或无效。" }, { "id": "model.channel_bookmark.is_valid.original_id.app_error", - "translation": "原 id 无效。" + "translation": "原 ID 无效。" }, { "id": "model.channel_bookmark.is_valid.parent_id.app_error", - "translation": "父级 id 无效。" + "translation": "父级 ID 无效。" }, { "id": "api.config.update.elasticsearch.autocomplete_cannot_be_enabled_error", @@ -9455,7 +9455,7 @@ }, { "id": "model.channel_bookmark.is_valid.channel_id.app_error", - "translation": "频道 id 无效。" + "translation": "频道 ID 无效。" }, { "id": "model.channel_bookmark.is_valid.create_at.app_error", @@ -9479,7 +9479,7 @@ }, { "id": "app.import.import_line.null_role.error", - "translation": "导入的数据行中有“role”类型,但角色对象为 null。" + "translation": "导入数据行类型为 \"role\",但角色对象为空。" }, { "id": "app.scheme.get_all_page.app_error", @@ -9487,7 +9487,7 @@ }, { "id": "model.scheme.is_valid.app_error", - "translation": "无效方案。" + "translation": "方案无效。" }, { "id": "api.user.create_user.user_limits.exceeded", @@ -9511,11 +9511,11 @@ }, { "id": "api.user.auth_switch.not_available.email_signup_disabled.app_error", - "translation": "身份验证转移不可用,因为使用电子邮件注册已被禁用。" + "translation": "认证切换不可用,因为邮箱注册已禁用。" }, { "id": "api.user.auth_switch.not_available.login_disabled.app_error", - "translation": "身份验证转移不可用,因为既未启用使用电子邮件登录也未启用使用用户名登录。" + "translation": "认证切换不可用,因为邮箱登录和用户名登录均未启用。" }, { "id": "api4.plugin.reattachPlugin.invalid_request", @@ -9531,11 +9531,11 @@ }, { "id": "api.post.check_for_out_of_team_mentions.message.multiple", - "translation": "@{{.Usernames}} 和 @{{.LastUsername}} 没有收到此提及的通知,因为他们不是该团队的成员。" + "translation": "@{{.Usernames}} 和 @{{.LastUsername}} 没有收到此提及通知,因为他们不是该团队的成员。" }, { "id": "api.post.check_for_out_of_team_mentions.message.one", - "translation": "@{{.Username}} 没有收到此提及的通知,因为他不是该团队的成员。" + "translation": "@{{.Username}} 没有收到此提及通知,因为该用户不是该团队的成员。" }, { "id": "app.plugin.reattach.app_error", @@ -9567,7 +9567,7 @@ }, { "id": "api.job.status.invalid", - "translation": "设置了无效的状态" + "translation": "设置的状态无效" }, { "id": "api.job.unable_to_manage_job.incorrect_job_type", @@ -9575,7 +9575,7 @@ }, { "id": "app.job.update_status.app_error", - "translation": "无法更新任务状态。设置了无效的状态" + "translation": "无法更新任务状态。设置的状态无效" }, { "id": "app.user.update.countAdmins.app_error", @@ -9599,7 +9599,7 @@ }, { "id": "api.get_site_url_error", - "translation": "无法取得实例 URL" + "translation": "无法获取实例 URL" }, { "id": "api.remote_cluster.accept_invitation_error", @@ -9615,7 +9615,7 @@ }, { "id": "api.remote_cluster.encrypt_invite_error", - "translation": "无法通过给定的密码加密远程阵列的邀请" + "translation": "无法使用给定密码加密远程集群邀请" }, { "id": "api.remote_cluster.get.not_found", @@ -9623,11 +9623,11 @@ }, { "id": "api.remote_cluster.invite_decrypt_error", - "translation": "无法通过给定的密码解密远程阵列的邀请" + "translation": "无法使用给定密码解密远程集群邀请" }, { "id": "app.import.custom_status.error", - "translation": "无法设定自定义状态。" + "translation": "无法设置自定义状态。" }, { "id": "model.user.pre_save.password_hash.app_error", @@ -9667,7 +9667,7 @@ }, { "id": "app.webhooks.get_incoming_count.app_error", - "translation": "无法获取 teamID={{.TeamID}}, userID={{.UserID}} 的 webhook,err={{.Error}}。" + "translation": "无法获取 teamID={{.TeamID}}, userID={{.UserID}} 的 Webhook,err={{.Error}}。" }, { "id": "api.user.login_with_desktop_token.not_oauth_or_saml_user.app_error", @@ -9679,11 +9679,11 @@ }, { "id": "model.thread.is_valid.user_id.app_error", - "translation": "无效的用户 ID。" + "translation": "用户 ID 无效。" }, { "id": "app.thread.get_threadmembers_for_export.app_error", - "translation": "无法获取主题成员以进行导出。" + "translation": "无法获取话题成员以进行导出。" }, { "id": "api.shared_channel.get_shared_channel_remotes_error", @@ -9703,23 +9703,23 @@ }, { "id": "app.import.import_direct_channel.get_channel_members.error", - "translation": "获取私聊频道成员失败" + "translation": "获取私信频道成员失败" }, { "id": "app.import.import_direct_channel.no_members.error", - "translation": "该私聊频道没有成员" + "translation": "该私信频道没有成员" }, { "id": "app.post.save.thread_membership.app_error", - "translation": "无法保存该信息的主题成员身份。" + "translation": "无法保存该消息的话题成员身份。" }, { "id": "model.thread.is_valid.post_id.app_error", - "translation": "无效的消息 ID。" + "translation": "消息 ID 无效。" }, { "id": "api.upload.create.upload_channel_not_shared_with_remote.app_error", - "translation": "上传文件失败。上传通道未与远程共享。" + "translation": "上传文件失败。上传频道未与远程共享。" }, { "id": "app.session.set_extra_session_prop.app_error", @@ -9755,7 +9755,7 @@ }, { "id": "api.channel.create_group.remote_restricted.app_error", - "translation": "无法创建包含远程用户的群组频道" + "translation": "无法创建包含远程用户的群组消息频道" }, { "id": "api.license.add_license.copy.app_error", @@ -9771,11 +9771,11 @@ }, { "id": "model.remote_cluster_invite.is_valid.remote_id.app_error", - "translation": "远程 id 无效。" + "translation": "远程 ID 无效。" }, { "id": "model.remote_cluster_invite.is_valid.site_url.app_error", - "translation": "站点 url 无效。" + "translation": "站点 URL 无效。" }, { "id": "model.remote_cluster_invite.is_valid.token.app_error", @@ -9783,7 +9783,7 @@ }, { "id": "api.oauth.get_access_token.bad_request.app_error", - "translation": "invalid_request:错误的请求。" + "translation": "invalid_request:请求错误。" }, { "id": "api.scheduled_posts.feature_disabled", @@ -9791,7 +9791,7 @@ }, { "id": "api.scheduled_posts.license_error", - "translation": "计划消息功能需要授权" + "translation": "计划消息功能需要许可证。" }, { "id": "app.bot.update.app_error", @@ -9819,15 +9819,15 @@ }, { "id": "app.import.import_bot.owner_could_not_found.error", - "translation": "无法找到机器人的拥有者" + "translation": "无法找到机器人的所有者" }, { "id": "app.import.import_line.null_bot.error", - "translation": "导入数据行的类型为“bot”,但 bot 对象为 null" + "translation": "导入数据行类型为 \"bot\",但 bot 对象为空。" }, { "id": "app.import.validate_bot_import_data.owner_missing.error", - "translation": "缺少机器人的拥有者" + "translation": "缺少机器人的所有者" }, { "id": "app.save_scheduled_post.channel_deleted.app_error", @@ -9971,19 +9971,19 @@ }, { "id": "web.command_webhook.general.app_error", - "translation": "处理命令 webhook {{.hook_id}} 失败。" + "translation": "处理命令 Webhook {{.hook_id}} 失败。" }, { "id": "web.incoming_webhook.decode.app_error", - "translation": "无法解码传入 webhook {{.hook_id}} 的媒体类型 {{.media_type}} 负载。" + "translation": "无法解码传入 Webhook {{.hook_id}} 的媒体类型 {{.media_type}} 负载。" }, { "id": "web.incoming_webhook.general.app_error", - "translation": "处理传入 webhook {{.hook_id}} 的媒体类型 {{.media_type}} 的负载失败。" + "translation": "处理传入 Webhook {{.hook_id}} 的媒体类型 {{.media_type}} 的负载失败。" }, { "id": "web.incoming_webhook.media_type.app_error", - "translation": "解析媒体传入 webhook {{.hook_id}} 失败。" + "translation": "解析传入 Webhook {{.hook_id}} 的媒体类型失败。" }, { "id": "model.post.is_valid.message_length.app_error", @@ -10075,11 +10075,11 @@ }, { "id": "model.property_field.is_valid.app_error", - "translation": "无效的属性字段:{{.FieldName}}({{.Reason}})。" + "translation": "属性字段:{{.FieldName}}({{.Reason}}) 无效。" }, { "id": "model.property_value.is_valid.app_error", - "translation": "无效的属性值:{{.FieldName}}({{.Reason}})。" + "translation": "属性值:{{.FieldName}}({{.Reason}}) 无效。" }, { "id": "app.custom_profile_attributes.property_field_not_found.app_error", @@ -10099,7 +10099,7 @@ }, { "id": "api.custom_profile_attributes.license_error", - "translation": "你的许可证不支持用户属性。" + "translation": "您的许可证不支持用户属性。" }, { "id": "api.file.zip_file_reader.app_error", @@ -10139,7 +10139,7 @@ }, { "id": "model.config.is_valid.metrics_client_side_user_id.app_error", - "translation": "无效的客户端侧用户 id:{{.Id}}" + "translation": "客户端侧用户 ID:{{.Id}} 无效" }, { "id": "model.config.is_valid.metrics_client_side_user_ids.app_error", @@ -10179,7 +10179,7 @@ }, { "id": "app.group.license_error", - "translation": "需要 LDAP 授权。" + "translation": "需要 LDAP 许可证。" }, { "id": "ent.ldap.get_user_by_auth.app_error", @@ -10187,11 +10187,11 @@ }, { "id": "license_error.feature_unavailable", - "translation": "此功能在当前授权中不可用" + "translation": "此功能在当前许可证中不可用" }, { "id": "model.config.is_valid.ldap_max_login_attempts.app_error", - "translation": "ldap 设置中的最大登录尝试次数无效。必须为正数。" + "translation": "LDAP 设置中的最大登录尝试次数无效。必须为正数。" }, { "id": "api.user.check_user_login_attempts.too_many_ldap.app_error", @@ -10219,7 +10219,7 @@ }, { "id": "app.custom_profile_attributes.sanitize_and_validate.app_error", - "translation": "无效的属性值属性:{{.AttributeName}} ({{.Reason}})。" + "translation": "属性值属性:{{.AttributeName}} ({{.Reason}})无效。" }, { "id": "ent.ldap.cpa_field_mapping.list_error", @@ -10239,11 +10239,11 @@ }, { "id": "web.incoming_webhook.parse_form.app_error", - "translation": "无法解析 webhook {{.hook_id}} 的表单。" + "translation": "无法解析 Webhook {{.hook_id}} 的表单。" }, { "id": "web.incoming_webhook.parse_multipart.app_error", - "translation": "无法解析 webhook {{.hook_id}} 的 multipart 表单。" + "translation": "无法解析 Webhook {{.hook_id}} 的 multipart 表单。" }, { "id": "api.admin.add_certificate.multiple_files.app_error", @@ -10275,11 +10275,11 @@ }, { "id": "ent.ldap.do_login.invalid_id", - "translation": "无效的 AD/LDAP ID" + "translation": "AD/LDAP ID 无效" }, { "id": "ent.ldap_groups.invalid_ldap_id", - "translation": "无效的 AD/LDAP ID" + "translation": "AD/LDAP ID 无效" }, { "id": "ent.saml.cpa_field_mapping.list_error", @@ -10287,23 +10287,23 @@ }, { "id": "model.access_policy.is_valid.id.app_error", - "translation": "无效的策略 ID。" + "translation": "策略 ID 无效。" }, { "id": "model.access_policy.is_valid.imports.app_error", - "translation": "无效的策略导入。" + "translation": "策略导入无效。" }, { "id": "model.access_policy.is_valid.name.app_error", - "translation": "无效的策略名称。" + "translation": "策略名称无效。" }, { "id": "model.access_policy.is_valid.revision.app_error", - "translation": "无效的策略版本。" + "translation": "策略版本无效。" }, { "id": "api.custom_profile_attributes.invalid_field_patch", - "translation": "无效的用户属性字段补丁" + "translation": "用户属性字段补丁无效" }, { "id": "model.access_policy.is_valid.rules_imports.app_error", @@ -10311,7 +10311,7 @@ }, { "id": "model.access_policy.is_valid.type.app_error", - "translation": "无效的策略类型。" + "translation": "策略类型无效。" }, { "id": "model.access_policy.is_valid.version.app_error", @@ -10355,7 +10355,7 @@ }, { "id": "app.custom_profile_attributes.property_field_is_synced.app_error", - "translation": "无法更新已同步的用户属性字段的值" + "translation": "无法更新已同步用户属性字段值" }, { "id": "api.access_control_policy.get_channels.limit.app_error", @@ -10487,7 +10487,7 @@ }, { "id": "app.group.delete_invalid_syncable_memberships.error", - "translation": "无法删除无效的群组同步成员资格。" + "translation": "无法删除无效群组同步成员资格。" }, { "id": "model.config.is_valid.directory_whitespace.app_error", @@ -10527,11 +10527,11 @@ }, { "id": "app.acknowledgement.batch_save.app_error", - "translation": "批保存确认对象失败" + "translation": "批量保存确认对象失败" }, { "id": "api.ldap.invalid_test_type.app_error", - "translation": "无效的测试类型:{{.TestType}}" + "translation": "测试类型:{{.TestType}} 无效" }, { "id": "api.remote_cluster.import_not_allowed.app_error", @@ -10539,7 +10539,7 @@ }, { "id": "model.acknowledgement.is_valid.channel_id.app_error", - "translation": "无效的频道 ID。" + "translation": "频道 ID 无效。" }, { "id": "api.team.invite_guests.policy_enforced_channel.app_error", @@ -10547,11 +10547,11 @@ }, { "id": "app.acknowledgement.delete.missing_post.app_error", - "translation": "无法删除缺失的消息的确认标记" + "translation": "无法删除缺失消息的确认标记" }, { "id": "app.acknowledgement.save.missing_post.app_error", - "translation": "无法保存缺失的消息的确认标记" + "translation": "无法保存缺失消息的确认标记" }, { "id": "app.user.update_active.license_user_limit.exceeded", @@ -10639,7 +10639,7 @@ }, { "id": "app.import.validate_direct_post_import_data.thread_follower.error", - "translation": "验证直接消息对话关注者数据失败。" + "translation": "验证私信对话关注者数据失败。" }, { "id": "app.access_control.insufficient_permissions", @@ -10647,7 +10647,7 @@ }, { "id": "app.custom_profile_attributes.property_field_is_managed.app_error", - "translation": "无法更新由管理员管理的用户属性字段的值" + "translation": "无法更新由管理员管理的用户属性字段值" }, { "id": "app.lookup_interactive_dialog.decode_json_error", @@ -10665,21 +10665,17 @@ "id": "app.pap.access_control.channel_group_constrained", "translation": "该频道受群组限制,无法应用访问控制策略。" }, - { - "id": "app.pap.access_control.channel_not_private", - "translation": "访问控制策略只能应用于私有频道。" - }, { "id": "app.pap.access_control.channel_shared", "translation": "共享频道无法应用访问控制策略。" }, { "id": "app.pap.access_control.insufficient_channel_permissions", - "translation": "你没有权限管理此频道的访问控制。" + "translation": "您没有权限管理此频道的访问控制。" }, { "id": "app.pap.access_control.insufficient_permissions", - "translation": "你没有权限管理此访问控制策略。" + "translation": "您没有权限管理此访问控制策略。" }, { "id": "ent.elasticsearch.create_processor.bulk_processor_create_failed", @@ -10695,7 +10691,7 @@ }, { "id": "model.config.is_valid.client_side_cert_enable.app_error", - "translation": "基于证书的身份验证已被移除。请禁用 ClientSideCertEnable 以继续操作。" + "translation": "基于证书的认证已被移除。请禁用 ClientSideCertEnable 以继续。" }, { "id": "model.config.is_valid.experimental_view_archived_channels.app_error", @@ -10707,7 +10703,7 @@ }, { "id": "app.user.check_user_password.failed_migration", - "translation": "未能将用户的密码迁移到最新的哈希方法。" + "translation": "未能将用户密码迁移到最新的哈希方法。" }, { "id": "app.user.check_user_password.failed_update", @@ -10767,11 +10763,11 @@ }, { "id": "api.reaction.delete.restricted_dm.error", - "translation": "无法在受限的私信中添加表情。" + "translation": "无法在受限私信中移除表情回应。" }, { "id": "api.reaction.save.restricted_dm.error", - "translation": "无法在受限的私信中添加表情。" + "translation": "无法在受限私信中添加表情回应。" }, { "id": "api.team.get_team.flagged_post_mismatch.app_error", @@ -10827,7 +10823,7 @@ }, { "id": "model.config.is_valid.autotranslation.provider.app_error", - "translation": "无效的自动翻译服务提供商,不能为空。" + "translation": "自动翻译服务提供商无效,不能为空。" }, { "id": "model.config.is_valid.autotranslation.provider.unsupported.app_error", @@ -10839,7 +10835,7 @@ }, { "id": "api.file.get_file.invalid_flagged_post.app_error", - "translation": "指定的标记消息ID不匹配。" + "translation": "指定的标记消息 ID 不匹配。" }, { "id": "api.file.get_file_info.app_error", @@ -10847,19 +10843,19 @@ }, { "id": "api.oauth.allow_oauth.pkce_required_public.app_error", - "translation": "公共OAuth客户端在使用授权码流程时,必须使用PKCE(代码交换证明密钥)。" + "translation": "公共 OAuth 客户端在使用授权码流程时必须使用 PKCE(代码交换证明密钥)。" }, { "id": "api.oauth.authorization_server_metadata.disabled.app_error", - "translation": "OAuth服务提供商已禁用。" + "translation": "OAuth 服务提供商已禁用。" }, { "id": "api.oauth.authorization_server_metadata.invalid_url.app_error", - "translation": "授权服务器元数据的URL配置无效。" + "translation": "授权服务器元数据的 URL 配置无效。" }, { "id": "api.oauth.authorization_server_metadata.site_url_required.app_error", - "translation": "必须配置站点URL才能提供授权服务器元数据。" + "translation": "必须配置站点 URL 才能提供授权服务器元数据。" }, { "id": "api.oauth.get_access_token.resource_mismatch.app_error", @@ -10867,7 +10863,7 @@ }, { "id": "api.oauth.regenerate_secret.public_client.app_error", - "translation": "invalid_request:无法为公共OAuth客户端重新生成密钥。" + "translation": "invalid_request:无法为公共 OAuth 客户端重新生成密钥。" }, { "id": "api.post.burn_post.user_not_in_channel.app_error", @@ -10919,7 +10915,7 @@ }, { "id": "api.reaction.save.burn_on_read.app_error", - "translation": "您不能对阅后即焚消息做出反应。" + "translation": "您不能对阅后即焚消息添加表情回应。" }, { "id": "api.team.invite_guests_to_channels.guest_magic_link_disabled.error", @@ -10935,7 +10931,7 @@ }, { "id": "api.templates.guest_magic_link_body.subtitle", - "translation": "点击下方按钮登录您的账户。请勿与他人分享此链接。" + "translation": "点击下方按钮登录您的账号。请勿与他人分享此链接。" }, { "id": "api.templates.guest_magic_link_body.title", @@ -10963,39 +10959,39 @@ }, { "id": "api.user.login.guest_magic_link.disabled.error", - "translation": "魔法链接登录已禁用。" + "translation": "访客登录链接已禁用。" }, { "id": "api.user.login_by_intune.account_locked.app_error", - "translation": "您的账户已被停用。请联系您的系统管理员。" + "translation": "您的账号已被停用。请联系您的系统管理员。" }, { "id": "api.user.login_by_intune.bot_login_forbidden.app_error", - "translation": "机器人账户无法使用微软身份验证登录。" + "translation": "机器人账号无法使用 Microsoft 认证登录。" }, { "id": "api.user.login_by_intune.not_available.app_error", - "translation": "微软 Intune 身份验证不可用。" + "translation": "微软 Intune 认证不可用。" }, { "id": "api.user.login_by_intune.not_configured.app_error", - "translation": "微软 Intune 身份验证未配置。" + "translation": "微软 Intune 认证未配置。" }, { "id": "api.user.oauth_to_email.magic_link.app_error", - "translation": "魔法链接是此账户唯一可用的登录方式。" + "translation": "登录链接是此账号唯一可用的登录方式。" }, { "id": "api.user.promote_guest_to_user.magic_link_enabled.app_error", - "translation": "无法将访客转换为普通用户,因为该访客使用魔法链接身份验证。" + "translation": "无法将访客转换为普通用户,因为该访客使用登录链接认证。" }, { "id": "api.user.send_password_reset.guest_magic_link.app_error", - "translation": "无法为访客魔法链接账户重置密码。" + "translation": "无法为访客登录链接账号重置密码。" }, { "id": "api.user.update_password.magic_link.app_error", - "translation": "无法为魔法链接账户更新密码。" + "translation": "无法为登录链接账号更新密码。" }, { "id": "app.burn_post.not_burn_on_read.app_error", @@ -11047,7 +11043,7 @@ }, { "id": "app.post.rewrite.invalid_action", - "translation": "无效的重写操作。" + "translation": "重写操作无效。" }, { "id": "app.post.rewrite.parse_response_failed", @@ -11087,79 +11083,79 @@ }, { "id": "ent.intune.login.account_not_found.app_error", - "translation": "您的账户尚未完全设置。请先通过网页或桌面端登录 Mattermost。" + "translation": "您的账号尚未完全设置。请先通过网页或桌面端登录 Mattermost。" }, { "id": "ent.intune.login.extract_auth_data.app_error", - "translation": "身份验证失败。请重试或联系您的系统管理员。" + "translation": "认证失败。请重试或联系您的系统管理员。" }, { "id": "ent.intune.login.not_configured.app_error", - "translation": "微软 Intune 身份验证未配置。" + "translation": "微软 Intune 认证未配置。" }, { "id": "ent.intune.validate_token.invalid_tenant_id.app_error", - "translation": "身份验证失败。配置无效。" + "translation": "认证失败。配置无效。" }, { "id": "ent.intune.validate_token.invalid_token.app_error", - "translation": "身份验证失败。请重试。" + "translation": "认证失败。请重试。" }, { "id": "ent.intune.validate_token.jwks_init.app_error", - "translation": "身份验证服务初始化失败。请联系您的系统管理员。" + "translation": "认证服务初始化失败。请联系您的系统管理员。" }, { "id": "ent.intune.validate_token.missing_claims.app_error", - "translation": "身份验证失败。缺少必要的用户信息。" + "translation": "认证失败。缺少必要的用户信息。" }, { "id": "ent.intune.validate_token.token_expired.app_error", - "translation": "身份验证会话已过期。请重新登录。" + "translation": "认证会话已过期。请重新登录。" }, { "id": "ent.push_proxy.delete.app_error", - "translation": "删除推送代理身份验证令牌失败。" + "translation": "删除推送代理认证令牌失败。" }, { "id": "ent.push_proxy.generate.bad_status.app_error", - "translation": "从推送代理服务器获取身份验证令牌失败。" + "translation": "从推送代理服务器获取认证令牌失败。" }, { "id": "ent.push_proxy.generate.create_request.app_error", - "translation": "为推送代理身份验证创建HTTP请求失败。" + "translation": "为推送代理认证创建HTTP 请求失败。" }, { "id": "ent.push_proxy.generate.empty_token.app_error", - "translation": "推送代理返回的身份验证令牌为空。" + "translation": "推送代理返回的认证令牌为空。" }, { "id": "ent.push_proxy.generate.encrypt.app_error", - "translation": "为推送代理身份验证加密负载失败。" + "translation": "为推送代理认证加密负载失败。" }, { "id": "ent.push_proxy.generate.http_request.app_error", - "translation": "向推送代理发送HTTP请求失败。" + "translation": "向推送代理发送HTTP 请求失败。" }, { "id": "ent.push_proxy.generate.marshal.app_error", - "translation": "为推送代理身份验证编组负载失败。" + "translation": "为推送代理认证编组负载失败。" }, { "id": "ent.push_proxy.generate.marshal_request.app_error", - "translation": "为推送代理身份验证编组请求体失败。" + "translation": "为推送代理认证编组请求体失败。" }, { "id": "ent.push_proxy.generate.no_key.app_error", - "translation": "没有可用的推送代理身份验证加密密钥。" + "translation": "没有可用的推送代理认证加密密钥。" }, { "id": "ent.push_proxy.generate.parse_response.app_error", - "translation": "解析推送代理身份验证端点的响应失败。" + "translation": "解析推送代理认证端点的响应失败。" }, { "id": "ent.push_proxy.generate.save_system.app_error", - "translation": "保存身份验证令牌失败。" + "translation": "保存认证令牌失败。" }, { "id": "ent.push_proxy.worker.interface_nil.app_error", @@ -11219,35 +11215,35 @@ }, { "id": "model.config.is_valid.intune_auth_service.app_error", - "translation": "启用 Intune 时,必须启用 Intune MAM 身份验证服务。" + "translation": "启用 Intune 时,必须启用 Intune MAM 认证服务。" }, { "id": "model.config.is_valid.intune_auth_service_invalid.app_error", - "translation": "Intune MAM 身份验证服务必须是 'office365' 或 'saml'。" + "translation": "Intune MAM 认证服务必须是 'office365' 或 'saml'。" }, { "id": "model.config.is_valid.intune_client_id.app_error", - "translation": "启用 Intune 时必须填写 Intune MAM 客户端ID。" + "translation": "启用 Intune 时必须填写 Intune MAM 客户端 ID。" }, { "id": "model.config.is_valid.intune_client_id_format.app_error", - "translation": "Intune MAM 客户端ID必须为有效 UUID。" + "translation": "Intune MAM 客户端 ID 必须为有效 UUID。" }, { "id": "model.config.is_valid.intune_requires_office365.app_error", - "translation": "当身份验证服务设置为 'office365' 时,Intune MAM 需要启用 OpenID Connect(Office 365)。" + "translation": "当认证服务设置为 'office365' 时,Intune MAM 需要启用 OpenID Connect(Office 365)。" }, { "id": "model.config.is_valid.intune_requires_saml.app_error", - "translation": "当身份验证服务设置为 'saml' 时,Intune MAM 需要启用 SAML。" + "translation": "当认证服务设置为 'saml' 时,Intune MAM 需要启用 SAML。" }, { "id": "model.config.is_valid.intune_tenant_id.app_error", - "translation": "启用 Intune 时必须填写 Intune MAM 租户ID。" + "translation": "启用 Intune 时必须填写 Intune MAM 租户 ID。" }, { "id": "model.config.is_valid.intune_tenant_id_format.app_error", - "translation": "Intune MAM 租户ID必须为有效 UUID。" + "translation": "Intune MAM 租户 ID 必须为有效 UUID。" }, { "id": "model.dcr.is_valid.client_name.app_error", @@ -11255,7 +11251,7 @@ }, { "id": "model.dcr.is_valid.client_uri_format.app_error", - "translation": "无效的客户端 URI 格式。" + "translation": "客户端 URI 格式无效。" }, { "id": "model.dcr.is_valid.client_uri_length.app_error", @@ -11263,7 +11259,7 @@ }, { "id": "model.dcr.is_valid.redirect_uri_format.app_error", - "translation": "无效的重定向 URI 格式。" + "translation": "重定向 URI 格式无效。" }, { "id": "model.dcr.is_valid.redirect_uris.app_error", @@ -11275,7 +11271,7 @@ }, { "id": "model.oauth.validate_grant.credentials.app_error", - "translation": "无效的客户端凭据。" + "translation": "客户端凭据无效。" }, { "id": "model.oauth.validate_grant.pkce_required.app_error", @@ -11291,27 +11287,27 @@ }, { "id": "model.post.decode_cursor.invalid_base64", - "translation": "无效的游标格式:无法解码 base64。" + "translation": "游标格式无效:无法解码 base64。" }, { "id": "model.post.decode_cursor.invalid_exclude_system_posts", - "translation": "无效的游标格式:exclude_system_posts 必须为布尔值。" + "translation": "游标格式无效:exclude_system_posts 必须为布尔值。" }, { "id": "model.post.decode_cursor.invalid_format", - "translation": "无效的游标格式:应为 8 个部分。" + "translation": "游标格式无效:应包含 8 个部分。" }, { "id": "model.post.decode_cursor.invalid_include_deleted", - "translation": "无效的游标格式:include_deleted 必须为布尔值。" + "translation": "游标格式无效:include_deleted 必须为布尔值。" }, { "id": "model.post.decode_cursor.invalid_timestamp", - "translation": "无效的游标格式:timestamp 必须为整数。" + "translation": "游标格式无效:timestamp 必须为整数。" }, { "id": "model.post.decode_cursor.invalid_version", - "translation": "无效的游标格式:version 必须为整数。" + "translation": "游标格式无效:version 必须为整数。" }, { "id": "model.post.decode_cursor.unsupported_version", @@ -11319,19 +11315,19 @@ }, { "id": "model.post.query_params.invalid_channel_id", - "translation": "无效的频道ID。" + "translation": "频道 ID 无效。" }, { "id": "model.post.query_params.invalid_cursor_id", - "translation": "无效的游标ID。" + "translation": "游标 ID 无效。" }, { "id": "model.post.query_params.invalid_sort_direction", - "translation": "无效的排序方向。" + "translation": "排序方向无效。" }, { "id": "model.post.query_params.invalid_time_field", - "translation": "无效的时间字段。" + "translation": "时间字段无效。" }, { "id": "api.recap.disabled.app_error", @@ -11451,7 +11447,7 @@ }, { "id": "ent.autotranslation.invalid_input", - "translation": "提供了无效的语言代码。" + "translation": "提供的语言代码无效。" }, { "id": "ent.autotranslation.mask_verification_failed", @@ -11515,11 +11511,11 @@ }, { "id": "model.config.is_valid.guest_accounts.cannot_enforce_multifactor_authentication_when_guest_magic_link_is_enabled.app_error", - "translation": "启用魔法链接认证时,无法强制来宾账户使用多因素认证。" + "translation": "启用访客登录链接时,无法强制访客账号使用多因素认证。" }, { "id": "model.translation.is_valid.lang.app_error", - "translation": "无效的语言代码。请使用标准的 ISO 代码,如 'en'、'ja' 或 'fr'。" + "translation": "语言代码无效。请使用标准的 ISO 代码,如 'en'、'ja' 或 'fr'。" }, { "id": "model.translation.is_valid.nil.app_error", @@ -11683,7 +11679,7 @@ }, { "id": "api.command_mobile_logs.desc", - "translation": "为你自己或其他用户管理移动应用日志附件。" + "translation": "为您自己或其他用户管理移动应用日志附件。" }, { "id": "api.command_mobile_logs.disabled", @@ -11723,11 +11719,11 @@ }, { "id": "api.command_mobile_logs.you", - "translation": "你" + "translation": "您" }, { "id": "api.data_spillage.error.comment_required", - "translation": "请添加一条评论,说明你为何要标记此消息。" + "translation": "请添加一条评论,说明您为何要标记此消息。" }, { "id": "api.data_spillage.error.comment_too_long", @@ -11743,7 +11739,7 @@ }, { "id": "api.data_spillage.error.license", - "translation": "你的许可证不支持数据泄露处理。" + "translation": "您的许可证不支持数据泄露处理。" }, { "id": "api.data_spillage.error.not_available_on_team", @@ -11767,7 +11763,7 @@ }, { "id": "api.file.get_file.abac_denied.app_error", - "translation": "你没有下载此文件所需的访问权限。" + "translation": "您没有下载此文件所需的访问权限。" }, { "id": "api.file.get_file.plugin_hook_timeout", @@ -11791,7 +11787,7 @@ }, { "id": "api.file.upload_file.abac_denied.app_error", - "translation": "你没有向此频道上传文件所需的访问权限。" + "translation": "您没有向此频道上传文件所需的访问权限。" }, { "id": "api.managed_category.feature_not_available.app_error", @@ -11819,7 +11815,7 @@ }, { "id": "api.post.reveal_post.invalid_request.app_error", - "translation": "无效请求:缺少或无效的 X-Requested-With 请求头。" + "translation": "请求无效:缺少 X-Requested-With 请求头,或该请求头无效。" }, { "id": "api.property_field.create.invalid_target_type.app_error", @@ -11835,7 +11831,7 @@ }, { "id": "api.property_field.delete.no_permission.app_error", - "translation": "你没有删除此属性字段的权限。" + "translation": "您没有删除此属性字段的权限。" }, { "id": "api.property_field.delete.protected_via_api.app_error", @@ -11851,7 +11847,7 @@ }, { "id": "api.property_field.invalid_patch.app_error", - "translation": "无效的属性字段补丁。" + "translation": "属性字段补丁无效。" }, { "id": "api.property_field.object_type_mismatch.app_error", @@ -11863,11 +11859,11 @@ }, { "id": "api.property_field.update.no_field_permission.app_error", - "translation": "你没有编辑此属性字段的权限。" + "translation": "您没有编辑此属性字段的权限。" }, { "id": "api.property_field.update.no_options_permission.app_error", - "translation": "你没有管理此属性字段选项的权限。" + "translation": "您没有管理此属性字段选项的权限。" }, { "id": "api.property_field.update.protected_via_api.app_error", @@ -11891,7 +11887,7 @@ }, { "id": "api.property_value.patch.no_values_permission.app_error", - "translation": "你没有为一个或多个字段设置值的权限。" + "translation": "您没有为一个或多个字段设置值的权限。" }, { "id": "api.property_value.patch.too_many_items.request_error", @@ -11899,7 +11895,7 @@ }, { "id": "api.property_value.target_user.forbidden.app_error", - "translation": "你没有访问其他用户属性值的权限。" + "translation": "您没有访问其他用户属性值的权限。" }, { "id": "api.shared_channel.attachment.creator_id_required.app_error", @@ -11927,15 +11923,15 @@ }, { "id": "api.templates.license_up_for_renewal_subtitle_two", - "translation": "请尽快续费,确保你的团队能继续享受这些优势。" + "translation": "请尽快续费,确保您的团队能继续享受这些优势。" }, { "id": "api.templates.remove_expired_license.body.heading", - "translation": "你的 Mattermost 许可证已到期" + "translation": "您的 Mattermost 许可证已到期" }, { "id": "api.templates.remove_expired_license.body.subtitle", - "translation": "你在 {{.SiteName}} 的 {{.SkuName}} 许可证已到期,部分功能可能已禁用。" + "translation": "您在 {{.SiteName}} 的 {{.SkuName}} 许可证已到期,部分功能可能已禁用。" }, { "id": "api.templates.remove_expired_license.body.subtitle_two", @@ -11975,7 +11971,7 @@ }, { "id": "api.view.get_posts.deleted_channel.app_error", - "translation": "无法从已删除的频道的视图中获取消息。" + "translation": "无法从已删除频道的视图中获取消息。" }, { "id": "api.view.list.deleted_channel.app_error", @@ -12079,7 +12075,7 @@ }, { "id": "app.data_spillage.flag_post_confirmation.message", - "translation": "来自 @{{.username}} 的消息已被隔离等待审核。审核员审核完成后将通知你。" + "translation": "来自 @{{.username}} 的消息已被隔离等待审核。审核员审核完成后将通知您。" }, { "id": "app.data_spillage.get_group.error", @@ -12095,7 +12091,7 @@ }, { "id": "app.data_spillage.get_thread_replies.app_error", - "translation": "获取被标记消息的线程回复失败。" + "translation": "获取被标记消息的话题回复失败。" }, { "id": "app.data_spillage.get_users_in_team.app_error", @@ -12187,7 +12183,7 @@ }, { "id": "app.data_spillage.set_thread_replies_properties.app_error", - "translation": "为被标记消息的线程回复设置属性值失败。" + "translation": "为被标记消息的话题回复设置属性值失败。" }, { "id": "app.limits.get_app_limits.single_channel_guest_count.store_error", @@ -12235,7 +12231,7 @@ }, { "id": "app.post_prority.get_for_post_with_context.app_error", - "translation": "无法获取带上下文的消息的优先级。" + "translation": "无法获取带上下文消息的优先级。" }, { "id": "app.property_field.count_for_group.app_error", @@ -12411,7 +12407,7 @@ }, { "id": "app.team.access_policies.self_exclusion.app_error", - "translation": "你不能创建会将你自己排除在外的策略。" + "translation": "您不能创建会将您自己排除在外的策略。" }, { "id": "app.team.access_policies.validation_error.app_error", @@ -12611,7 +12607,7 @@ }, { "id": "web.error.unsupported_desktop_app.assistance", - "translation": "如需进一步协助,请联系你的系统管理员。" + "translation": "如需进一步协助,请联系系统管理员。" }, { "id": "web.error.unsupported_desktop_app.download_button", @@ -12635,7 +12631,7 @@ }, { "id": "web.error.unsupported_desktop_app.message", - "translation": "你的 {{.SiteName}} 桌面应用版本({{.CurrentVersion}})低于最低要求版本({{.MinimumVersion}})。请更新应用,或在网页浏览器中打开 {{.SiteName}} 以继续。" + "translation": "您的 {{.SiteName}} 桌面应用版本({{.CurrentVersion}})低于最低要求版本({{.MinimumVersion}})。请更新应用,或在网页浏览器中打开 {{.SiteName}} 以继续。" }, { "id": "web.error.unsupported_desktop_app.title", @@ -12643,14 +12639,138 @@ }, { "id": "api.slackimport.slack_add_bot_user.email", - "translation": "电子邮件为 {{.Email}} 的集成/Slack 机器人用户已导入。\n" + "translation": "邮箱地址为 {{.Email}} 的集成/Slack 机器人用户已导入。\n" }, { "id": "api.slackimport.slack_add_users.email", - "translation": "电子邮件为 {{.Email}} 的 Slack 用户已导入。\n" + "translation": "邮箱地址为 {{.Email}} 的 Slack 用户已导入。\n" }, { "id": "api.slackimport.slack_add_users.send_reset_email_failed", - "translation": "无法向 {{.Username}}({{.Email}})发送密码重置电子邮件。\n" + "translation": "无法向 {{.Username}}({{.Email}})发送密码重置邮件。\n" + }, + { + "id": "api.property.v2_group_not_found.app_error", + "translation": "未找到指定的属性组。" + }, + { + "id": "api.property_field.patch.cannot_link_existing.app_error", + "translation": "无法在已存在的字段上设置 linked_field_id。只能在创建时设置。" + }, + { + "id": "api.property_field.patch.linked_field_change.app_error", + "translation": "无法更改链接目标。请先取消链接,再创建一个新的链接字段。" + }, + { + "id": "api.property_field.patch.linked_options_change.app_error", + "translation": "无法修改链接字段的选项。选项继承自来源。" + }, + { + "id": "api.property_field.patch.linked_type_change.app_error", + "translation": "无法修改链接字段的类型。类型继承自来源。" + }, + { + "id": "api.property_value.template_no_values.app_error", + "translation": "模板字段不能有值。" + }, + { + "id": "app.bot.update.internal_error", + "translation": "无法更新机器人。" + }, + { + "id": "app.import.import_bot.lookup_error", + "translation": "查找现有机器人失败" + }, + { + "id": "app.import.import_bot.user_not_found.error", + "translation": "未找到机器人的用户" + }, + { + "id": "app.property_field.create.linked_source_cross_group.app_error", + "translation": "无法链接到另一组中的字段。" + }, + { + "id": "app.property_field.create.linked_source_deleted.app_error", + "translation": "链接的源字段已被删除。" + }, + { + "id": "app.property_field.create.linked_source_is_linked.app_error", + "translation": "无法链接到一个自身是链接的字段。不允许链式链接。" + }, + { + "id": "app.property_field.create.linked_source_not_found.app_error", + "translation": "找不到链接的源字段。" + }, + { + "id": "app.property_field.create.linked_source_not_template.app_error", + "translation": "只能链接至模板字段。" + }, + { + "id": "app.property_field.create.linked_source_protected.app_error", + "translation": "只有源插件可以从受保护的模板创建链接字段。" + }, + { + "id": "app.property_field.create.linked_target_type_mismatch.app_error", + "translation": "链接字段的目标类型必须与源模板的目标类型匹配。" + }, + { + "id": "app.property_field.create.template_cannot_be_linked.app_error", + "translation": "模板字段不能包含链接字段。" + }, + { + "id": "app.property_field.delete.has_linked_dependents.app_error", + "translation": "无法删除有活跃依赖者的字段。请先解除链接或删除依赖者。" + }, + { + "id": "app.property_field.update.cannot_change_link_target.app_error", + "translation": "无法更改链接目标。请先解除链接,再创建一个新的链接字段。" + }, + { + "id": "app.property_field.update.cannot_link_existing.app_error", + "translation": "无法在已存在的字段上设置 linked_field_id。只能在创建时设置。" + }, + { + "id": "app.property_field.update.conflict.app_error", + "translation": "由于冲突,无法更新属性字段。请重试。" + }, + { + "id": "app.property_field.update.linked_options_change.app_error", + "translation": "无法修改链接字段的选项。选项继承自来源。" + }, + { + "id": "app.property_field.update.linked_type_change.app_error", + "translation": "无法修改链接字段的类型。类型继承自来源。" + }, + { + "id": "app.property_field.update.type_change_with_dependents.app_error", + "translation": "无法更改存在活跃依赖项的字段类型。" + }, + { + "id": "app.property_field.version_mismatch.app_error", + "translation": "属性字段与组版本不兼容。" + }, + { + "id": "app.property_value.template_no_values.app_error", + "translation": "模板字段不能有值。" + }, + { + "id": "app.upload.gen_file_info.invalid_filename.app_error", + "translation": "文件名无效。" + }, + { + "id": "ent.elasticsearch.indexer.do_job.bulk_failures.error", + "translation": "索引任务已完成,但是 {{.NumFailed}} 个文档被搜索后端拒绝且未索引" + }, + { + "id": "ent.elasticsearch.indexer.do_job.create_bulk_processor.error", + "translation": "索引工作进程初始化批量处理器失败" + }, + { + "id": "model.file_info.is_valid.name.app_error", + "translation": "名称的值无效。" + }, + { + "id": "model.property_group.is_valid.app_error", + "translation": "属性组无效:{{.FieldName}}({{.Reason}})。" } ] diff --git a/webapp/channels/src/i18n/be.json b/webapp/channels/src/i18n/be.json index 8de13ca9df6e..37d68747aca9 100644 --- a/webapp/channels/src/i18n/be.json +++ b/webapp/channels/src/i18n/be.json @@ -584,7 +584,6 @@ "admin.channel_settings.channel_detail.profileTitle": "Профіль Канала", "admin.channel_settings.channel_detail.remove_policy": "Выдаліць усё", "admin.channel_settings.channel_detail.remove_policy.aria_label": "Выдаліць палітыку", - "admin.channel_settings.channel_detail.select_policy": "Прымяніць палітыку доступу для гэтага канала, каб абмежаваць членства", "admin.channel_settings.channel_detail.select_policy_description": "Палітыка кантролю доступу абмяжуе членства ў канале на аснове атрыбутаў карыстальніка.", "admin.channel_settings.channel_detail.select_policy_title": "Выберыце палітыку кантролю доступу", "admin.channel_settings.channel_detail.syncedGroupsDescription": "Дадавайце і выдаляйце ўдзельнікаў канала на аснове іх членства ў групе.", @@ -596,7 +595,6 @@ "admin.channel_settings.channel_details.isPublic": "Публічны канал або прыватны канал", "admin.channel_settings.channel_details.isPublicDescr": "Выберыце \"Публічны\" для канала, які любы карыстальнік можа знайсці і далучыцца. {br}Выберыце \"Прыватны\", каб для далучэння да канала патрабавалася запрашэнне. {br}Выкарыстоўвайце гэты перамыкач, каб змяніць гэты канал з публічнага на прыватны або з прыватнага на публічны.", "admin.channel_settings.channel_details.policy_enforced_title": "Уключыць доступ да канала на аснове атрыбутаў", - "admin.channel_settings.channel_details.private_channel_only": "Толькі прыватныя каналы могуць быць заснаваныя на атрыбутах.", "admin.channel_settings.channel_details.syncGroupMembers": "Сінхранізаваць удзельнікаў групы", "admin.channel_settings.channel_details.syncGroupMembersDescr": "Калі ўключана, даданне і выдаленне карыстальнікаў з груп будзе дадаваць або выдаляць іх з гэтага канала. Адзіны спосаб запрасіць удзельнікаў у гэты канал - дадаць групы, да якіх яны належаць. Даведацца больш", "admin.channel_settings.channel_details.unarchiveChannel": "Аднавіць канал", @@ -3857,7 +3855,6 @@ "channel_settings.save_changes_panel.banner_text.required_error": "Тэкст банера канала не можа быць пустым, калі ён уключаны", "channel_settings.save_changes_panel.reset": "Скінуць", "channel_settings.save_changes_panel.standard_error": "У форме вышэй ёсць памылкі", - "channel_settings.tab.access_control": "Кантроль доступу", "channel_settings.tab.archive": "Архіваваць канал", "channel_settings.tab.configuration": "Канфігурацыя", "channel_settings.tab.info": "Інфармацыя", diff --git a/webapp/channels/src/i18n/cs.json b/webapp/channels/src/i18n/cs.json index 59af5d68e3b0..85b44656d338 100644 --- a/webapp/channels/src/i18n/cs.json +++ b/webapp/channels/src/i18n/cs.json @@ -565,7 +565,6 @@ "admin.channel_settings.channel_detail.profileTitle": "Profil kanálu", "admin.channel_settings.channel_detail.remove_policy": "Odstranit zásadu", "admin.channel_settings.channel_detail.remove_policy.aria_label": "Odebrat pravidlo", - "admin.channel_settings.channel_detail.select_policy": "Vyberte přístupovou zásadu pro tento kanál, abyste omezili členství", "admin.channel_settings.channel_detail.select_policy_description": "Zásada řízení přístupu omezí členství v kanálu na základě uživatelských atributů.", "admin.channel_settings.channel_detail.select_policy_title": "Vyberte zásadu řízení přístupu", "admin.channel_settings.channel_detail.syncedGroupsDescription": "Přidávat a odebírat členy kanálu na základě jejich členství ve skupině.", @@ -577,7 +576,6 @@ "admin.channel_settings.channel_details.isPublic": "Veřejný nebo soukromý kanál", "admin.channel_settings.channel_details.isPublicDescr": "Zvolte Veřejný pro kanál, který může najít a připojit se k němu každý uživatel. {br}Zvolte Soukromý, pokud chcete, aby bylo ke vstupu nutné pozvání. {br}Použijte tento přepínač k změně kanálu z veřejného na soukromý nebo ze soukromého na veřejný.", "admin.channel_settings.channel_details.policy_enforced_title": "Povolit přístup ke kanálu na základě atributu", - "admin.channel_settings.channel_details.private_channel_only": "Pouze soukromé kanály mohou být založené na atributech.", "admin.channel_settings.channel_details.syncGroupMembers": "Synchronizovat členy skupiny", "admin.channel_settings.channel_details.syncGroupMembersDescr": "Po aktivaci bude přidání a odebrání uživatelů ze skupin znamenat jejich přidání nebo odebrání z tohoto kanálu. Jediný způsob, jak pozvat členy do tohoto kanálu, je přidáním skupin, kterým patří. Zjistit více", "admin.channel_settings.channel_details.unarchiveChannel": "Zrušit archivaci kanálu", @@ -3680,7 +3678,6 @@ "channel_settings.save_changes_panel.banner_text.required_error": "Text banneru kanálu nemůže být prázdný, když je povolený", "channel_settings.save_changes_panel.reset": "Reset", "channel_settings.save_changes_panel.standard_error": "Ve formuláři výše se vyskytují chyby", - "channel_settings.tab.access_control": "Řízení přístupu", "channel_settings.tab.archive": "Archivovat kanál", "channel_settings.tab.configuration": "Konfigurace", "channel_settings.tab.info": "Informace", diff --git a/webapp/channels/src/i18n/de.json b/webapp/channels/src/i18n/de.json index 9fcf0e191c5c..305a4598e89e 100644 --- a/webapp/channels/src/i18n/de.json +++ b/webapp/channels/src/i18n/de.json @@ -320,7 +320,6 @@ "admin.access_control.policy.edit_policy.error.name_required": "Bitte füge der Police einen Namen hinzu", "admin.access_control.policy.edit_policy.error.unassign_channels": "Fehler beim Aufheben der Zuweisung von Kanälen: {error}", "admin.access_control.policy.edit_policy.error.update_active_status": "Fehler bei der Aktualisierung des aktiven Status der Richtlinie: {error}", - "admin.access_control.policy.edit_policy.no_private_channels": "Es gibt keine privaten Kanäle, die zu dieser Richtlinie hinzugefügt werden können.", "admin.access_control.policy.edit_policy.no_usable_attributes_tooltip": "Bitte konfiguriere die Benutzerattribute, um den Editor zu verwenden.", "admin.access_control.policy.edit_policy.notice.button": "Benutzerattribute konfigurieren", "admin.access_control.policy.edit_policy.notice.text": "Du hast noch keine Benutzerattribute konfiguriert. Die attributbasierte Zugriffskontrolle erfordert Benutzerattribute, die entweder von einem externen System (wie LDAP oder SAML) synchronisiert oder manuell auf diesem Server konfiguriert und aktiviert werden. Um den attributbasierten Zugriff zu nutzen, konfiguriere bitte die Benutzerattribute unter Systemattribute.", @@ -587,7 +586,6 @@ "admin.channel_settings.channel_detail.profileTitle": "Kanalprofil", "admin.channel_settings.channel_detail.remove_policy": "Alle entfernen", "admin.channel_settings.channel_detail.remove_policy.aria_label": "Richtlinie entfernen", - "admin.channel_settings.channel_detail.select_policy": "Verwende eine Richtlinie für diesen Kanal, um die Mitgliedschaft zu beschränken", "admin.channel_settings.channel_detail.select_policy_description": "Eine Zugriffskontrollrichtlinie schränkt die Mitgliedschaft in Kanälen auf der Grundlage von Benutzerattributen ein.", "admin.channel_settings.channel_detail.select_policy_title": "Wähle eine Zugriffskontrollrichtlinie", "admin.channel_settings.channel_detail.syncedGroupsDescription": "Hinzufügen und Entfernen von Kanal-Mitgliedern basierend auf ihrer Gruppenzugehörigkeit.", @@ -599,7 +597,6 @@ "admin.channel_settings.channel_details.isPublic": "Öffentlicher Kanal oder privater Kanal", "admin.channel_settings.channel_details.isPublicDescr": "Wähle Öffentlich für einen Kanal, dem jeder Benutzer beitreten kann. {br}Wähle Privat, um Einladungen zum Beitritt zu benötigen. {br}Mit diesem Schalter kannst du den Kanal von öffentlich auf privat oder von privat auf öffentlich umstellen.", "admin.channel_settings.channel_details.policy_enforced_title": "Aktiviere den attributbasierten Kanalzugang", - "admin.channel_settings.channel_details.private_channel_only": "Nur private Kanäle können attributbasiert sein.", "admin.channel_settings.channel_details.syncGroupMembers": "Gruppenmitglieder synchronisieren", "admin.channel_settings.channel_details.syncGroupMembersDescr": "Wenn aktiviert, werden Benutzer, wenn sie einer Gruppe hinzugefügt oder entfernt werden, auch diesem Kanal hinzugefügt oder daraus entfernt. Die einzige Möglichkeit, Mitglieder zu diesem Kanal einzuladen, besteht darin, die Gruppen, denen sie angehören, hinzuzufügen. Erfahre mehr", "admin.channel_settings.channel_details.unarchiveChannel": "Kanal wiederherstellen", @@ -4010,7 +4007,6 @@ "channel_settings.save_changes_panel.banner_text.required_error": "Kanal-Bannertext kann nicht leer sein, wenn aktiviert", "channel_settings.save_changes_panel.reset": "Zurücksetzen", "channel_settings.save_changes_panel.standard_error": "Es sind Fehler im obigen Formular vorhanden", - "channel_settings.tab.access_control": "Zugangskontrolle", "channel_settings.tab.archive": "Kanal archivieren", "channel_settings.tab.configuration": "Konfiguration", "channel_settings.tab.info": "Info", diff --git a/webapp/channels/src/i18n/en-AU.json b/webapp/channels/src/i18n/en-AU.json index a3fd9b84a1d3..72fd089e144a 100644 --- a/webapp/channels/src/i18n/en-AU.json +++ b/webapp/channels/src/i18n/en-AU.json @@ -584,7 +584,6 @@ "admin.channel_settings.channel_detail.profileTitle": "Channel Profile", "admin.channel_settings.channel_detail.remove_policy": "Remove policy", "admin.channel_settings.channel_detail.remove_policy.aria_label": "Remove policy", - "admin.channel_settings.channel_detail.select_policy": "Select an access policy for this channel to restrict membership", "admin.channel_settings.channel_detail.select_policy_description": "An access control policy will restrict channel membership based on user attributes.", "admin.channel_settings.channel_detail.select_policy_title": "Select an Access Control Policy", "admin.channel_settings.channel_detail.syncedGroupsDescription": "Add and remove channel members based on their group membership.", @@ -596,7 +595,6 @@ "admin.channel_settings.channel_details.isPublic": "Public channel or private channel", "admin.channel_settings.channel_details.isPublicDescr": "Select Public for a channel any user can find and join. {br}Select Private to require channel invitations to join. {br}Use this switch to change this channel from public to private or from private to public.", "admin.channel_settings.channel_details.policy_enforced_title": "Enable attribute based channel access", - "admin.channel_settings.channel_details.private_channel_only": "Only private channels can be attribute based.", "admin.channel_settings.channel_details.syncGroupMembers": "Sync Group Members", "admin.channel_settings.channel_details.syncGroupMembersDescr": "When enabled, adding and removing users from groups will add or remove them from this channel. The only way of inviting members to this channel is by adding the groups they belong to. Learn More", "admin.channel_settings.channel_details.unarchiveChannel": "Unarchive Channel", @@ -3931,7 +3929,6 @@ "channel_settings.save_changes_panel.banner_text.required_error": "Channel banner text cannot be empty when enabled", "channel_settings.save_changes_panel.reset": "Reset", "channel_settings.save_changes_panel.standard_error": "There are errors in the form above", - "channel_settings.tab.access_control": "Access Control", "channel_settings.tab.archive": "Archive Channel", "channel_settings.tab.configuration": "Configuration", "channel_settings.tab.info": "Info", diff --git a/webapp/channels/src/i18n/ja.json b/webapp/channels/src/i18n/ja.json index a172493f077b..e178bdb50101 100644 --- a/webapp/channels/src/i18n/ja.json +++ b/webapp/channels/src/i18n/ja.json @@ -324,7 +324,6 @@ "admin.access_control.policy.edit_policy.error.name_required": "ポリシーに名前を追加してください", "admin.access_control.policy.edit_policy.error.unassign_channels": "チャンネル割り当て解除エラー: {error}", "admin.access_control.policy.edit_policy.error.update_active_status": "ポリシー有効化ステータス更新エラー: {error}", - "admin.access_control.policy.edit_policy.no_private_channels": "このポリシーに追加可能な非公開チャンネルはありません。", "admin.access_control.policy.edit_policy.no_usable_attributes_tooltip": "編集するにはユーザー属性を設定してください。", "admin.access_control.policy.edit_policy.notice.button": "ユーザー属性の設定", "admin.access_control.policy.edit_policy.notice.text": "ユーザー属性がまだ設定されていません。属性ベースのアクセス制御を実施するには、外部システム (LDAPやSAML等) から同期、もしくは手動で構成・有効化されたこのサーバー向けのユーザー属性が必要です。属性ベースのアクセスを使用するには、システムコンソールからユーザー属性を設定してください。", @@ -587,7 +586,6 @@ "admin.channel_settings.channel_detail.profileTitle": "チャンネルプロフィール", "admin.channel_settings.channel_detail.remove_policy": "ポリシー削除", "admin.channel_settings.channel_detail.remove_policy.aria_label": "ポリシーを削除", - "admin.channel_settings.channel_detail.select_policy": "メンバーシップを制限するために、このチャンネルのアクセスポリシーを選択してください", "admin.channel_settings.channel_detail.select_policy_description": "アクセス制御ポリシーは、ユーザー属性に基づいてチャンネルメンバーシップを制限します。", "admin.channel_settings.channel_detail.select_policy_title": "アクセス制御ポリシーを選択する", "admin.channel_settings.channel_detail.syncedGroupsDescription": "グループメンバーシップに基づいてチャンネルメンバーを追加、削除します。", @@ -599,7 +597,6 @@ "admin.channel_settings.channel_details.isPublic": "公開チャンネルか非公開チャンネル", "admin.channel_settings.channel_details.isPublicDescr": "チャンネルを誰でも参加可能にするには公開を選択してください。{br}参加に招待を必要とするには非公開を選択してください。{br}このチャンネルを公開から非公開、もしくは非公開から公開に変更するにはこのスイッチを使用してください。", "admin.channel_settings.channel_details.policy_enforced_title": "属性ベースのチャンネルアクセスを有効にする", - "admin.channel_settings.channel_details.private_channel_only": "非公開チャンネルのみ属性ベースにできます。", "admin.channel_settings.channel_details.syncGroupMembers": "グループメンバーを同期する", "admin.channel_settings.channel_details.syncGroupMembersDescr": "有効な場合、グループのユーザーを追加・削除すると、このチャンネルからも追加・削除されます。このチャンネルにメンバーを招待する唯一の方法は、招待するメンバーが所属するグループを追加することです。詳しくは説明文書を参照してください", "admin.channel_settings.channel_details.unarchiveChannel": "チャンネルをアーカイブから復元する", @@ -3837,7 +3834,6 @@ "channel_settings.save_changes_panel.banner_text.required_error": "有効な場合、チャンネルバナーテキストの入力が必要です", "channel_settings.save_changes_panel.reset": "リセット", "channel_settings.save_changes_panel.standard_error": "入力項目にエラーがあります", - "channel_settings.tab.access_control": "アクセス制御", "channel_settings.tab.archive": "チャンネルアーカイブ", "channel_settings.tab.configuration": "設定", "channel_settings.tab.info": "Info", diff --git a/webapp/channels/src/i18n/ko.json b/webapp/channels/src/i18n/ko.json index 2005d0c68725..5af66fb46854 100644 --- a/webapp/channels/src/i18n/ko.json +++ b/webapp/channels/src/i18n/ko.json @@ -560,7 +560,6 @@ "admin.channel_settings.channel_detail.profileTitle": "채널 프로파일", "admin.channel_settings.channel_detail.remove_policy": "모두 제거", "admin.channel_settings.channel_detail.remove_policy.aria_label": "정책 제거", - "admin.channel_settings.channel_detail.select_policy": "이 채널에 액세스 정책을 적용하여 멤버십을 제한하세요", "admin.channel_settings.channel_detail.select_policy_description": "액세스 제어 정책은 사용자 속성을 기반으로 채널 멤버십을 제한합니다.", "admin.channel_settings.channel_detail.select_policy_title": "액세스 제어 정책 선택", "admin.channel_settings.channel_detail.syncedGroupsDescription": "그룹 권한 기반으로 채널 구성원을 추가하고 제거하십시오.", @@ -572,7 +571,6 @@ "admin.channel_settings.channel_details.isPublic": "공유 채널 또는 비공개 채널", "admin.channel_settings.channel_details.isPublicDescr": "`공개` 선택되면 이 채널은 어떤 사용자든 채널 검색을 통해 참여할 수 있으며.{br}`비공개`를 선택되면 이 채널은 초대 통해서만 참여할 수 있습니다.{br}본 옵션을 통해 비공개에서 공개 채널로 전환하거나 공개에서 비공개 채널로 전환이 가능합니다.", "admin.channel_settings.channel_details.policy_enforced_title": "속성 기반 채널 액세스 활성화", - "admin.channel_settings.channel_details.private_channel_only": "비공개 채널만 속성 기반이 될 수 있습니다.", "admin.channel_settings.channel_details.syncGroupMembers": "그룹 구성원 동기화", "admin.channel_settings.channel_details.syncGroupMembersDescr": "활성화 시, 사용자를 그룹에 추가하거나 제거하면 이 채널에도 동일하게 적용됩니다. 이 채널에 구성원을 초대하려면 해당 구성원이 속한 그룹을 추가해야 합니다. 자세히 보기", "admin.channel_settings.channel_details.unarchiveChannel": "채널 보관 해제", diff --git a/webapp/channels/src/i18n/nb-NO.json b/webapp/channels/src/i18n/nb-NO.json index f4937ceffc6f..84ec9cd60283 100644 --- a/webapp/channels/src/i18n/nb-NO.json +++ b/webapp/channels/src/i18n/nb-NO.json @@ -28,7 +28,7 @@ "about.serverHostname": "Vertsnavn:", "about.serverUnknown": "serveren oppga ikke vertsnavn", "about.serverVersion": "Server-versjon:", - "about.teamEditionLearn": "Bli med å bidra til Mattermost på ", + "about.teamEditionLearn": "Bli en del av Mattermost-miljøet på ", "about.teamEditionSt": "All kommunikasjon i teamet på ett sted, søkbart og tilgjengelig fra hvor som helst.", "about.teamEditiont0": "Team versjon", "about.teamEditiont1": "Enterprise versjon", @@ -497,7 +497,6 @@ "admin.channel_settings.channel_detail.profileTitle": "Kanalprofil", "admin.channel_settings.channel_detail.remove_policy": "Fjern alle", "admin.channel_settings.channel_detail.remove_policy.aria_label": "Fjern policy", - "admin.channel_settings.channel_detail.select_policy": "Bruk en tilgangspolicy for denne kanalen for å begrense medlemskap", "admin.channel_settings.channel_detail.select_policy_description": "En policy for tilgangskontroll begrenser medlemskap i kanaler basert på brukerens attributter.", "admin.channel_settings.channel_detail.select_policy_title": "Velg en policy for tilgangskontroll", "admin.channel_settings.channel_detail.syncedGroupsDescription": "Legg til og fjern kanalmedlemmer basert på deres gruppemedlemskap.", @@ -509,7 +508,6 @@ "admin.channel_settings.channel_details.isPublic": "Åpen kanal eller privat kanal", "admin.channel_settings.channel_details.isPublicDescr": "Velg Åpen for en kanal som alle brukere kan finne og bli med i. {br}Velg Privat for å kreve kanalinvitasjoner for å bli med. {br}Bruk denne bryteren til å endre kanalen fra offentlig til privat eller fra privat til offentlig.", "admin.channel_settings.channel_details.policy_enforced_title": "Aktiver attributtbasert tilgang til kanaler", - "admin.channel_settings.channel_details.private_channel_only": "Bare private kanaler kan være basert på attributter.", "admin.channel_settings.channel_details.syncGroupMembers": "Synk gruppemedlemmer", "admin.channel_settings.channel_details.syncGroupMembersDescr": "Når aktivert, vil det å legge til og fjerne brukere fra grupper legge til eller fjerne dem fra denne kanalen. Den eneste måten å invitere medlemmer til denne kanalen på, er ved å legge til gruppene de tilhører. Lær mer", "admin.channel_settings.channel_details.unarchiveChannel": "Gjenåpne kanal fra arkiv", @@ -3101,7 +3099,6 @@ "channel_settings.save_changes_panel.banner_text.required_error": "Bannere i kanaler kan ikke være tomme når de er aktivert", "channel_settings.save_changes_panel.reset": "Tilbakestill", "channel_settings.save_changes_panel.standard_error": "Det er feil i skjemaet ovenfor", - "channel_settings.tab.access_control": "Tilgangskontroll", "channel_settings.tab.archive": "Arkiver kanal", "channel_settings.tab.configuration": "Konfigurasjon", "channel_settings.tab.info": "Info", diff --git a/webapp/channels/src/i18n/nl.json b/webapp/channels/src/i18n/nl.json index 271ceb248376..148060db0840 100644 --- a/webapp/channels/src/i18n/nl.json +++ b/webapp/channels/src/i18n/nl.json @@ -324,7 +324,6 @@ "admin.access_control.policy.edit_policy.error.name_required": "Geef een naam aan het beleid", "admin.access_control.policy.edit_policy.error.unassign_channels": "Fout bij het ongedaan maken van de toewijzing van kanalen: {error}", "admin.access_control.policy.edit_policy.error.update_active_status": "Fout bij het bijwerken van de actieve status van het beleid: {error}", - "admin.access_control.policy.edit_policy.no_private_channels": "Er zijn geen privékanalen beschikbaar om aan dit beleid toe te voegen.", "admin.access_control.policy.edit_policy.no_usable_attributes_tooltip": "Configureer gebruikersattributen om de editor te gebruiken.", "admin.access_control.policy.edit_policy.notice.button": "Gebruikerskenmerken configureren", "admin.access_control.policy.edit_policy.notice.text": "Je hebt nog geen gebruikerskenmerken geconfigureerd. Voor toegangscontrole op basis van kenmerken zijn gebruikerskenmerken nodig die worden gesynchroniseerd vanuit een extern systeem (zoals LDAP of SAML) of handmatig worden geconfigureerd en ingeschakeld op deze server. Om toegang op basis van kenmerken te gaan gebruiken, moet je gebruikerskenmerken configureren in Systeemkenmerken.", @@ -591,7 +590,6 @@ "admin.channel_settings.channel_detail.profileTitle": "Kanaalprofiel", "admin.channel_settings.channel_detail.remove_policy": "Alles verwijderen", "admin.channel_settings.channel_detail.remove_policy.aria_label": "Beleid verwijderen", - "admin.channel_settings.channel_detail.select_policy": "Pas een toegangsbeleid toe voor dit kanaal om het lidmaatschap te beperken", "admin.channel_settings.channel_detail.select_policy_description": "Een toegangscontrolebeleid beperkt het lidmaatschap van kanalen op basis van gebruikerskenmerken.", "admin.channel_settings.channel_detail.select_policy_title": "Selecteer een toegangscontrolebeleid", "admin.channel_settings.channel_detail.syncedGroupsDescription": "Kanaalleden toevoegen en verwijderen op basis van hun groepslidmaatschap.", @@ -603,7 +601,6 @@ "admin.channel_settings.channel_details.isPublic": "Publiek kanaal of privé-kanaal", "admin.channel_settings.channel_details.isPublicDescr": "Selecteer Publiek voor een kanaal dat elke gebruiker kan vinden en lid van kan worden. {br}Selecteer Privé om een uitnodiging voor een kanaal nodig te hebben. {br}Gebruik deze schakelaar om dit kanaal te veranderen van publiek naar privé of van privé naar publiek.", "admin.channel_settings.channel_details.policy_enforced_title": "Inschakelen van kanaaltoegang op basis van attributen", - "admin.channel_settings.channel_details.private_channel_only": "Alleen privékanalen kunnen gebaseerd zijn op attributen.", "admin.channel_settings.channel_details.syncGroupMembers": "Syncronisatie Groepsleden", "admin.channel_settings.channel_details.syncGroupMembersDescr": "Als deze optie is ingeschakeld, worden gebruikers aan groepen toevoegen of eruit verwijderden hen ook toevoegen of verwijderen uit dit kanaal. De enige manier om leden uit te nodigen voor dit kanaal is door ze toe te voegen aan de groepen waartoe ze behoren. Meer informatie", "admin.channel_settings.channel_details.unarchiveChannel": "Kanaal Dearchiveren", @@ -4115,7 +4112,6 @@ "channel_settings.share_channel_with_workspaces.workspaces_label": "Werkruimten waarmee dit kanaal wordt gedeeld", "channel_settings.share_channel_with_workspaces.workspaces_label_empty": "Dit kanaal wordt nog niet gedeeld met verbonden werkruimten.", "channel_settings.sharing_errors": "Er zijn fouten opgetreden tijdens het delen van het kanaal met sommige werkruimten. Probeer het opnieuw.", - "channel_settings.tab.access_control": "Toegangscontrole", "channel_settings.tab.archive": "Kanaal archiveren", "channel_settings.tab.configuration": "Configuratie", "channel_settings.tab.info": "Info", diff --git a/webapp/channels/src/i18n/pl.json b/webapp/channels/src/i18n/pl.json index ca0f04776791..097687fe6a5e 100644 --- a/webapp/channels/src/i18n/pl.json +++ b/webapp/channels/src/i18n/pl.json @@ -324,7 +324,6 @@ "admin.access_control.policy.edit_policy.error.name_required": "Dodaj nazwę do polityki", "admin.access_control.policy.edit_policy.error.unassign_channels": "Błąd nieprzypisania Kanałów: {error}", "admin.access_control.policy.edit_policy.error.update_active_status": "Błąd aktualizacji stanu aktywnej polityki: {error}", - "admin.access_control.policy.edit_policy.no_private_channels": "Do tej polityki nie można dodać żadnych prywatnych kanałów.", "admin.access_control.policy.edit_policy.no_usable_attributes_tooltip": "Skonfiguruj atrybuty użytkownika, aby korzystać z edytora.", "admin.access_control.policy.edit_policy.notice.button": "Skonfiguruj atrybuty użytkownika", "admin.access_control.policy.edit_policy.notice.text": "Nie skonfigurowałeś jeszcze żadnych atrybutów użytkownika. Kontrola dostępu oparta na atrybutach wymaga atrybutów użytkownika, które są synchronizowane z zewnętrznego systemu (takiego jak LDAP lub SAML) lub ręcznie skonfigurowane i włączone na tym serwerze. Aby rozpocząć korzystanie z dostępu opartego na atrybutach, skonfiguruj atrybuty użytkownika w Atrybutach systemu.", @@ -346,12 +345,14 @@ "admin.access_control.table_editor.attribute_synced": "Ten atrybut jest synchronizowany z zewnętrznego źródła", "admin.access_control.table_editor.blank_state": "Wybierz atrybut użytkownika i wartości, aby utworzyć regułę", "admin.access_control.table_editor.create_value": "Utwórz \"{value}\"", - "admin.access_control.table_editor.help_text": "Każdy wiersz to pojedynczy warunek, który musi być spełniony, aby użytkownik przestrzegał zasad. Wszystkie reguły są połączone operatorem logicznym AND (`&&`).", + "admin.access_control.table_editor.help_text": "Każdy wiersz to pojedynczy warunek, który musi być spełniony, aby użytkownik przestrzegał zasad polityki. Wszystkie reguły są połączone operatorem logicznym AND (`&&`).", "admin.access_control.table_editor.learnMore": "Dowiedz się więcej o tworzeniu wyrażeń dostępu na przykładach.", "admin.access_control.table_editor.not_safe_to_use": "Wartości tego atrybutu są zarządzane przez użytkowników i nie powinny być używane do kontroli dostępu. Połącz atrybut z AD/LDAP w celu użycia w polityce dostępu.", "admin.access_control.table_editor.operator": "Operator", "admin.access_control.table_editor.operator.contains": "zawiera", "admin.access_control.table_editor.operator.ends_with": "kończy się na", + "admin.access_control.table_editor.operator.has_all_of": "ma wszystkie", + "admin.access_control.table_editor.operator.has_any_of": "ma którykolwiek z", "admin.access_control.table_editor.operator.in": "w", "admin.access_control.table_editor.operator.is": "jest", "admin.access_control.table_editor.operator.is_not": "nie jest", @@ -385,20 +386,20 @@ "admin.audit_logging_experimental.certificate.title": "Certyfikat", "admin.audit_logging_experimental.certificate.tooltip": "Poprzednia aktualizacja jest nadal w toku. Poczekaj.", "admin.audit_logging_experimental.certificate.uploading": "Ładowanie Certyfikatu...", - "admin.audit_logging_experimental.file_enabled.help_text": "Wybierz, czy dzienniki audytu mają być zapisywane lokalnie w pliku.", + "admin.audit_logging_experimental.file_enabled.help_text": "Wybierz, czy logi audytu mają być zapisywane lokalnie w pliku.", "admin.audit_logging_experimental.file_enabled.title": "Plik Włączony", "admin.audit_logging_experimental.file_name.help_text": "Nazwa pliku do zapisu.", "admin.audit_logging_experimental.file_name.title": "Nazwa pliku", "admin.auditlogging.title": "Rejestrowanie audytów", - "admin.audits.reload": "Odśwież Aktywność użytkowników", + "admin.audits.reload": "Przeładuj logi aktywności użytkownika", "admin.authentication.email": "E-mail", "admin.authentication.gitlab": "GitLab", "admin.authentication.guest_access": "Dostęp dla gości", "admin.authentication.ldap": "AD/LDAP", "admin.authentication.ldap.wizard": "Kreator AD/LDAP", - "admin.authentication.mfa": "Wieloskładnikowe uwierzytelnianie", + "admin.authentication.mfa": "Uwierzytelnianie wieloskładnikowe", "admin.authentication.oauth": "OAuth 2.0", - "admin.authentication.openid": "OpenID Connect", + "admin.authentication.openid": "Połączenie OpenID", "admin.authentication.saml": "SAML 2.0", "admin.authentication.signup": "Zarejestruj się", "admin.auto_translation_feature_discovery.copy": "Współpracuj bez wysiłku w różnych językach dzięki automatycznemu tłumaczeniu. Wiadomości w udostępnionych Kanałach są natychmiast tłumaczone w oparciu o preferencje językowe każdego użytkownika - nie są wymagane żadne dodatkowe kroki.{br}Dostępne tylko w wersji Enterprise Advanced.", @@ -591,7 +592,6 @@ "admin.channel_settings.channel_detail.profileTitle": "Profil kanału", "admin.channel_settings.channel_detail.remove_policy": "Usuń wszystko", "admin.channel_settings.channel_detail.remove_policy.aria_label": "Usuń politykę", - "admin.channel_settings.channel_detail.select_policy": "Zastosuj politykę dostępu dla tego Kanału, aby ograniczyć członkostwo", "admin.channel_settings.channel_detail.select_policy_description": "Polityka kontroli dostępu ogranicza członkostwo w kanale na podstawie atrybutów użytkownika.", "admin.channel_settings.channel_detail.select_policy_title": "Wybierz politykę kontroli dostępu", "admin.channel_settings.channel_detail.syncedGroupsDescription": "Dodawaj i usuwaj członków kanału na podstawie ich członkostwa w grupie.", @@ -603,7 +603,6 @@ "admin.channel_settings.channel_details.isPublic": "Kanał publiczny lub prywatny", "admin.channel_settings.channel_details.isPublicDescr": "Wybierz opcję Publiczny, aby każdy użytkownik mógł znaleźć kanał i dołączyć do niego. {br}Wybierz Prywatny, aby wymagać zaproszenia do kanału. {br}Użyj tego przełącznika, aby zmienić kanał z publicznego na prywatny lub z prywatnego na publiczny.", "admin.channel_settings.channel_details.policy_enforced_title": "Włącz dostęp do kanałów oparty na atrybutach", - "admin.channel_settings.channel_details.private_channel_only": "Tylko kanały prywatne mogą być oparte na atrybutach.", "admin.channel_settings.channel_details.syncGroupMembers": "Synchronizuj członków grupy", "admin.channel_settings.channel_details.syncGroupMembersDescr": "Gdy ta opcja jest włączona, dodawanie i usuwanie użytkowników z grup spowoduje dodanie lub usunięcie ich z tego kanału. Jedynym sposobem zapraszania członków do tego kanału jest dodanie grup, do których należą. Dowiedz się więcej", "admin.channel_settings.channel_details.unarchiveChannel": "Odarchiwizuj kanał", @@ -979,6 +978,7 @@ "admin.elasticsearch.skipTLSVerificationTitle": "Pomiń weryfikację TLS:", "admin.elasticsearch.sniffDescription": "Kiedy włączone, podsłuchiwanie automatycznie odnajduje i łączy się ze wszystkimi węzłami danych w klastrze.", "admin.elasticsearch.sniffTitle": "Włącz funkcję Cluster Sniffing:", + "admin.elasticsearch.sniffWarning": "Nie włączaj funkcji cluster sniffing u dostawców hostowanych w chmurze, takich jak Elastic Cloud lub Amazon OpenSearch Service.", "admin.elasticsearch.testConfigSuccess": "Test zakończony pomyślnie. Konfiguracja została zapisana.", "admin.elasticsearch.testHelpText": "Testuje, czy serwer Mattermost może połączyć się z podanym serwerem Elasticsearch. Testowanie połączenia zapisuje konfigurację tylko wtedy, gdy test się powiedzie. Udany test spowoduje również ponowną inicjalizację klienta, jeśli uruchomiłeś Elasticsearch po uruchomieniu Mattermost. Nie spowoduje to jednak ponownego uruchomienia procesów. Aby to zrobić, należy włączyć \"Enable Elasticsearch Indexing\".", "admin.elasticsearch.title": "Elasticsearch", @@ -2954,6 +2954,7 @@ "admin.sidebar.subscription": "Subskrypcja", "admin.sidebar.systemAttributes": "Atrybuty systemu", "admin.sidebar.systemRoles": "Delegowana administracja szczegółowa", + "admin.sidebar.systemStatistics": "Statystyki systemu", "admin.sidebar.teamStatistics": "Statystyki zespołu", "admin.sidebar.teams": "Zespoły", "admin.sidebar.userManagement": "Zarządzanie użytkownikiem", @@ -4115,7 +4116,6 @@ "channel_settings.share_channel_with_workspaces.workspaces_label": "Obszary robocze, z którymi udostępniany jest ten Kanał", "channel_settings.share_channel_with_workspaces.workspaces_label_empty": "Kanał ten nie jest jeszcze udostępniony żadnym połączonym obszarom roboczym.", "channel_settings.sharing_errors": "Wystąpiły błędy podczas udostępniania kanału niektórym obszarom roboczym. Spróbuj ponownie.", - "channel_settings.tab.access_control": "Kontrola Dostępu", "channel_settings.tab.archive": "Archiwizuj kanał", "channel_settings.tab.configuration": "Konfiguracja", "channel_settings.tab.info": "Informacje", diff --git a/webapp/channels/src/i18n/ru.json b/webapp/channels/src/i18n/ru.json index 16b0ab405d29..cb4663275223 100644 --- a/webapp/channels/src/i18n/ru.json +++ b/webapp/channels/src/i18n/ru.json @@ -321,7 +321,6 @@ "admin.access_control.policy.edit_policy.error.name_required": "Пожалуйста, добавьте имя в политику", "admin.access_control.policy.edit_policy.error.unassign_channels": "Ошибка при переназначении каналов: {error}", "admin.access_control.policy.edit_policy.error.update_active_status": "Ошибка обновления активного состояния политики: {error}", - "admin.access_control.policy.edit_policy.no_private_channels": "В этой политике нет частных каналов, которые можно было бы добавить.", "admin.access_control.policy.edit_policy.no_usable_attributes_tooltip": "Настройте атрибуты пользователя для использования редактора.", "admin.access_control.policy.edit_policy.notice.button": "Настройте атрибуты пользователя", "admin.access_control.policy.edit_policy.notice.text": "Вы еще не настроили никаких атрибутов пользователя. Для управления доступом на основе атрибутов требуются атрибуты пользователя, которые либо синхронизируются с внешней системой (например, LDAP или SAML), либо вручную настраиваются и включаются на этом сервере. Чтобы начать использовать доступ на основе атрибутов, настройте атрибуты пользователя в разделе \"Система атрибутов\".", @@ -588,7 +587,6 @@ "admin.channel_settings.channel_detail.profileTitle": "Профиль канала", "admin.channel_settings.channel_detail.remove_policy": "Удалить все", "admin.channel_settings.channel_detail.remove_policy.aria_label": "Удалить политику", - "admin.channel_settings.channel_detail.select_policy": "Применить политику доступа для этого канала, чтобы ограничить членство в нем", "admin.channel_settings.channel_detail.select_policy_description": "Политика контроля доступа будет ограничивать членство в каналах на основе атрибутов пользователя.", "admin.channel_settings.channel_detail.select_policy_title": "Выберите политику контроля доступа", "admin.channel_settings.channel_detail.syncedGroupsDescription": "Добавить и удалить участников канала в зависимости от их членства в группе.", @@ -600,7 +598,6 @@ "admin.channel_settings.channel_details.isPublic": "Публичный или приватный канал", "admin.channel_settings.channel_details.isPublicDescr": "Выберите Общий, чтобы любой пользователь мог найти канал и присоединиться к нему. {br}Выберите Приватный, чтобы для присоединения к каналу требовалось приглашение. {br}Используйте этот переключатель, чтобы переключить канал с публичного на приватный или с приватного на общий.", "admin.channel_settings.channel_details.policy_enforced_title": "Включить доступ к каналам на основе атрибутов", - "admin.channel_settings.channel_details.private_channel_only": "Только частные каналы могут быть основаны на атрибутах.", "admin.channel_settings.channel_details.syncGroupMembers": "Синхронизация участников группы", "admin.channel_settings.channel_details.syncGroupMembersDescr": "Когда включено, добавление и удаление пользователей из групп будет добавлять или удалять их из этого канала. Единственный способ пригласить участников на этот канал - добавить группы, к которым они принадлежат. Узнать больше", "admin.channel_settings.channel_details.unarchiveChannel": "Разархивировать канал", diff --git a/webapp/channels/src/i18n/sv.json b/webapp/channels/src/i18n/sv.json index 4ad1607e10ec..80167c603dfd 100644 --- a/webapp/channels/src/i18n/sv.json +++ b/webapp/channels/src/i18n/sv.json @@ -583,7 +583,6 @@ "admin.channel_settings.channel_detail.profileTitle": "Kanalprofil", "admin.channel_settings.channel_detail.remove_policy": "Ta bort policy", "admin.channel_settings.channel_detail.remove_policy.aria_label": "Ta bort policy", - "admin.channel_settings.channel_detail.select_policy": "Välj en åtkomstpolicy för att begränsa medlemskap till kanalen", "admin.channel_settings.channel_detail.select_policy_description": "En policy för åtkomstkontroll kommer begränsa medlemskap i kanaler baserat på användarattribut.", "admin.channel_settings.channel_detail.select_policy_title": "Välj en policy för åtkomstkontroll", "admin.channel_settings.channel_detail.syncedGroupsDescription": "Lägg till och ta bort medlemmar utifrån gruppmedlemsskap.", @@ -595,7 +594,6 @@ "admin.channel_settings.channel_details.isPublic": "Publik eller privat kanal", "admin.channel_settings.channel_details.isPublicDescr": "Välj Publik för en kanal som vem som helst kan hitta och ansluta till.{br} Välj Privat och ge inbjudningar till kanalen.{br} Använd denna inställning för att växla från publik kanal till privat eller från privat till publik.", "admin.channel_settings.channel_details.policy_enforced_title": "Aktivera attributbaserad åtkomst till kanaler", - "admin.channel_settings.channel_details.private_channel_only": "Endast privata kanaler kan vara attributbaserade.", "admin.channel_settings.channel_details.syncGroupMembers": "Synkronisera gruppmedlemmar", "admin.channel_settings.channel_details.syncGroupMembersDescr": "När aktiverad så kommer förändring i gruppmedlemsskap förändra närvaro i denna kanal. Enda sättet att bjuda in medlemmar i kanalen är att lägga till de grupper de är medlem i. Läs mer", "admin.channel_settings.channel_details.unarchiveChannel": "Arkivera kanaler", @@ -3806,7 +3804,6 @@ "channel_settings.save_changes_panel.banner_text.required_error": "Kanalens bannertext kan inte vara tom när den är aktiverad", "channel_settings.save_changes_panel.reset": "Återställ", "channel_settings.save_changes_panel.standard_error": "Det finns fel i formuläret ovan", - "channel_settings.tab.access_control": "Åtkomstkontroll", "channel_settings.tab.archive": "Arkivera kanalen", "channel_settings.tab.configuration": "Konfiguration", "channel_settings.tab.info": "Info", diff --git a/webapp/channels/src/i18n/tr.json b/webapp/channels/src/i18n/tr.json index 0dcfe504741e..457181fea8bd 100644 --- a/webapp/channels/src/i18n/tr.json +++ b/webapp/channels/src/i18n/tr.json @@ -145,7 +145,7 @@ "add_incoming_webhook.channel": "Kanal", "add_incoming_webhook.channel.help": "Varsayılan olarak İnternet kancasının alınacağı herkese açık ya da özel kanal. İnternet kancasını ayarlarken özel kanalın üyesi olmanız gerekir.", "add_incoming_webhook.channelLocked": "Şu kanala kilitlensin", - "add_incoming_webhook.channelLocked.help": "Ayarlanmış ise, gelen İnternet kancası yalnızca seçilmiş kanala ileti gönderebilir.", + "add_incoming_webhook.channelLocked.help": "Ayarlanmış ise, gelen internet kancası yalnızca seçilmiş kanala ileti gönderebilir.", "add_incoming_webhook.channelRequired": "Geçerli bir kanal yazılması zorunludur", "add_incoming_webhook.description": "Açıklama", "add_incoming_webhook.description.help": "Gelen internet kancası açıklaması.", @@ -324,7 +324,6 @@ "admin.access_control.policy.edit_policy.error.name_required": "Lütfen ilkeye bir ad verin", "admin.access_control.policy.edit_policy.error.unassign_channels": "Kanalların ataması kaldırılırken sorun çıktı: {error}", "admin.access_control.policy.edit_policy.error.update_active_status": "İlkenin etkin durumu güncellenirken sorun çıktı: {error}", - "admin.access_control.policy.edit_policy.no_private_channels": "Bu ilkeye eklenebilecek herhangi bir özel kanal yok.", "admin.access_control.policy.edit_policy.no_usable_attributes_tooltip": "Lütfen düzenleyiciyi kullanacak kullanıcı özniteliklerini yapılandırın.", "admin.access_control.policy.edit_policy.notice.button": "Kullanıcı özniteliklerini yapılandırın", "admin.access_control.policy.edit_policy.notice.text": "Henüz herhangi bir kullanıcı özniteliği yapılandırmamışsınız. Öznitelik temelli erişim denetimi için, bir dış sistemden (LDAP ya da SAML gibi) eşitlenen veya bu sunucuda el ile yapılandırılan ve etkinleştirilen kullanıcı özniteliklerinin bulunması gerekir. Öznitelik temelli erişimi kullanmaya başlamak için lütfen sistem öznitelikleri bölümünden kullanıcı özniteliklerini yapılandırın.", @@ -352,6 +351,8 @@ "admin.access_control.table_editor.operator": "İşlem", "admin.access_control.table_editor.operator.contains": "şunu içeren", "admin.access_control.table_editor.operator.ends_with": "şununla biten", + "admin.access_control.table_editor.operator.has_all_of": "şunların tümünü içeren", + "admin.access_control.table_editor.operator.has_any_of": "şunların birini içeren", "admin.access_control.table_editor.operator.in": "içinde şu olan", "admin.access_control.table_editor.operator.is": "tam olarak şu olan", "admin.access_control.table_editor.operator.is_not": "tam olarak şu olmayan", @@ -591,7 +592,6 @@ "admin.channel_settings.channel_detail.profileTitle": "Kanal profili", "admin.channel_settings.channel_detail.remove_policy": "Tümünü kaldır", "admin.channel_settings.channel_detail.remove_policy.aria_label": "İlkeyi kaldır", - "admin.channel_settings.channel_detail.select_policy": "Üyeliği kısıtlamak için bu kanala bir erişim ilkesi uygulayın", "admin.channel_settings.channel_detail.select_policy_description": "Bir erişim denetimi ilkesi ile kullanıcı özniteliklerine göre kanal üyeliği kısıtlanacak.", "admin.channel_settings.channel_detail.select_policy_title": "Bir erişim denetimi ilkesi seçin", "admin.channel_settings.channel_detail.syncedGroupsDescription": "Kanal üyeleri grup üyeliklerine göre eklenip çıkarılır.", @@ -603,7 +603,6 @@ "admin.channel_settings.channel_details.isPublic": "Herkese açık ya da özel kanal", "admin.channel_settings.channel_details.isPublicDescr": "Kanalın herkes tarafından bulunup kullanılabilmesi için Herkese açık olarak seçin. {br}Kullanıcıların kanala yalnızca davet ile katılabilmesi için Özel olarak seçin. {br}Bu kanalı herkese açık kanaldan özel kanala ya da özel kanaldan herkese açık kanala dönüştürmek için bu anahtarı kullanın.", "admin.channel_settings.channel_details.policy_enforced_title": "Öznitelik temelli kanal erişimini aç", - "admin.channel_settings.channel_details.private_channel_only": "Yalnızca özel kanallar öznitelik temelli olabilir.", "admin.channel_settings.channel_details.syncGroupMembers": "Grup üyeleri eşitlensin", "admin.channel_settings.channel_details.syncGroupMembersDescr": "Açıldığında, gruplara eklenen ve çıkarılan kullanıcılar bu kanala da eklenir ya da çıkarılır. Bu kanala kullanıcıları davet etmenin tek yolu bulundukları grupları eklemektir. Ayrıntılı bilgi almak için buraya bakabilirsiniz", "admin.channel_settings.channel_details.unarchiveChannel": "Kanalı arşivden çıkar", @@ -979,6 +978,7 @@ "admin.elasticsearch.skipTLSVerificationTitle": "TLS doğrulaması atlansın:", "admin.elasticsearch.sniffDescription": "Açıldığında, kümenizdeki tüm veri düğümleri koklama ile otomatik olarak bulunur ve bağlanılır.", "admin.elasticsearch.sniffTitle": "Küme koklama kullanılsın:", + "admin.elasticsearch.sniffWarning": "Elastic Cloud veya Amazon OpenSearch Service gibi bulut üzerinde barındırılan hizmet sağlayıcılar için küme koklamayı açmayın.", "admin.elasticsearch.testConfigSuccess": "Sınama tamamlandı. Yapılandırma kaydedildi.", "admin.elasticsearch.testHelpText": "Mattermost sunucusunun belirtilen Elasticsearch sunucusu ile bağlantı kurup kuramadığını sınar. Yapılandırma yalnızca bağlantı sınaması başarılı olduğunda kaydedilir. Elasticsearch Mattermost başlatıldıktan sonra başlatılmış ise sınama başarılı olduğunda istemci yeniden hazırlanır. Ancak işlemler yeniden başlatılmaz. Bunun için \"Elasticsearch dizini kullanılsın\" seçeceğini kapatıp açın.", "admin.elasticsearch.title": "Elasticsearch", @@ -1394,6 +1394,7 @@ "admin.image.storeDescription": "Eklenecek dosya ve görsellerin kaydedileceği depolama alanı sistemi.\n\n\"Amazon S3\" olarak seçildiğinde, Amazon kimlik doğrulama bilgileri ile klasör ayrıntılarının yazılabileceği alanlar açılır.\n\n\"Yerel dosya sistemi\" olarak seçildiğinde yerel dosya klasörünün yazılabileceği alan açılır.", "admin.image.storeLocal": "Yerel dosya sistemi", "admin.image.storeTitle": "Dosya depolama alanı sistemi:", + "admin.info_banner.restart_required.desc": "Bu bölümde yapılan değişikliklerin etkin olması için sunucu yeniden başlatılmalıdır.", "admin.integrations.botAccounts": "Bot hesapları", "admin.integrations.botAccounts.title": "Bot hesapları", "admin.integrations.cors": "Kaynaklar arası istekler (CORS)", @@ -1401,6 +1402,21 @@ "admin.integrations.gif": "GIF", "admin.integrations.integrationManagement": "Bütünleştirme yönetimi", "admin.integrations.integrationManagement.title": "Bütünleştirme yönetimi", + "admin.intune.authServiceDescription": "Kullanıcıların Mattermost üzerinde kimliklerini nasıl doğrulayacağını seçin.\n* **OpenID Connect** - Kullanıcılar OIDC kullanarak Microsoft 365 / Entra ID ile Mattermost üzerinde oturum açtığında kullanın.\n* **SAML 2.0** - Kullanıcılar kimliklerini, son olarak Microsoft Entra ID ile eşleşen bir SAML hizmeti sağlayıcısı ile doğruladığınd kullanın.\nKuruluşunuzun kullanıcılarını diğer istemcilerde nasıl doğruladığına uygun olarak bir Mattermost doğrulaması seçin.", + "admin.intune.authServiceOffice365": "OpenID Connect (Office 365)", + "admin.intune.authServicePlaceholder": "Bir kimlik doğrulama hizmeti sağlayıcısı seçin", + "admin.intune.authServiceSaml": "SAML 2.0", + "admin.intune.authServiceTitle": "Kimlik doğrulama hizmeti sağlayıcı:", + "admin.intune.clientIdDescription": "Microsoft Entra ID üzerinde Intune MAM özellikli uygulama kaydınızın Uygulama (İstemci) Kimliği.\nMattermost mobil uygulamasının Intune MAM kaydı ve ilke değerlendirmesi için MSAL kodları istemek üzere kullandığı istemci tanımlayıcısı.", + "admin.intune.clientIdPlaceholder": "Örnek: \"87654321-4321-4321-4321-210987654321\"", + "admin.intune.clientIdTitle": "Uygulama (İstemci) Kimliği:", + "admin.intune.enableDescription": "Açıldığında Mattermost Mobil, uygulama kimlik doğrulaması ve ilke zorlaması için Microsoft Entra ID (Azure AD) kullanır. Kullanıcılar MSAL kodlarını kullanarak kimlik doğrulaması yapar ve kurumsal verileri korumak için Intune MAM ilkeleri (Uygulama Koruma İlkeleri) uygulanır.", + "admin.intune.enableTitle": "Microsoft Intune MAM kullanılsın:", + "admin.intune.tenantIdDescription": "Microsoft Entra ID (Azure AD) Kiracı Kimliği (Dizin Kimliği olarak da adlandırılır).\nMicrosoft Entra ID üzerinde kuruluşunuzu belirten küresel olarak benzersiz tanımlayıcıdır.\nMattermost, Intune MAM için iletilen kodları doğrulamak için bu kimliği kullanır.", + "admin.intune.tenantIdPlaceholder": "Örnek: \"12345678-1234-1234-1234-123456789012\"", + "admin.intune.tenantIdTitle": "Tenant ID (Kiracı kimliği):", + "admin.intune_feature_discovery.description": "Mattermost Enterprise Advanced ile, Mattermost Mobile Uygulama Koruma İlkelerini (APP) uygulamak için Microsoft Intune Mobil Uygulama Yönetimi (MAM) kullanabilirsiniz. Kullanıcılar Microsoft Entra ID (Azure AD) ile oturum açar ve Intune MAM, desteklenen iOS aygıtlarında veri koruma, seçici silme ve uyumluluk ilkelerini uygular.", + "admin.intune_feature_discovery.title": "Mobil verileri, Microsoft Intune Uygulama Koruma İlkeleri (MAM) ve Entra ID kimlik doğrulaması ile koruyun", "admin.ip_filtering.add_filter": "Süzgeç ekle", "admin.ip_filtering.add_ip_filter": "IP süzgeci ekle", "admin.ip_filtering.add_your_ip": "IP adresinizi ekleyin", @@ -1636,10 +1652,14 @@ "admin.license.enterpriseToAdvancedAdvantage.advancedCompliance": "Gelişmiş uyumluluk", "admin.license.enterpriseToAdvancedAdvantage.advancedWorkflows": "Senaryolar ile gelişmiş iş akışları", "admin.license.enterpriseToAdvancedAdvantage.attributeBasedAccess": "Öznitelik temelli erişim denetimi", + "admin.license.enterpriseToAdvancedAdvantage.automaticChannelTranslations": "Otomatik kanal çevirileri", "admin.license.enterpriseToAdvancedAdvantage.burnOnReadMessages": "Okunduğunda yok edilecek iletiler", + "admin.license.enterpriseToAdvancedAdvantage.channelBanners": "Kanal bildirimleri", "admin.license.enterpriseToAdvancedAdvantage.channelWarningBanners": "Kanal uyarı bildirimleri", "admin.license.enterpriseToAdvancedAdvantage.dataSpillageHandling": "Verilerin sızmasının işlenmesi", + "admin.license.enterpriseToAdvancedAdvantage.dynamicAttributeBasedAccessControls": "Devingen öznitelik temelli erişim denetimi", "admin.license.enterpriseToAdvancedAdvantage.highAvailability": "Yüksek erişilebilirlik", + "admin.license.enterpriseToAdvancedAdvantage.mobileBiometricsAndAdvancedSecurity": "Mobil biyometri ve gelişmiş güvenlik", "admin.license.entryEdition.limits": "şu sınırlar ile", "admin.license.entryEdition.subtitle": "Entry, değerlendirmek için tasarlanmış {limitsLink} ile Enterprise Advanced özelliklerini sunar.", "admin.license.entryPlanSubtitle": "Tüm özelliklere erişmek için bir tarife satın alın veya Enterprise Advanced değerlendirmesinde sınırlamaları kaldırmak için deneme süresini başlatın.", @@ -1666,6 +1686,9 @@ "admin.license.renewalCard.usersNumbers_active": "Etkin kullanıcılar: ", "admin.license.renewalCard.usersNumbers_licensed": "Lisanslı kullanıcılar: ", "admin.license.setByEnvVar": "Lisans konumu ortam değişkeni tarafından ayarlanır", + "admin.license.singleChannelGuests.limitReached": "(Sınıra ulaşıldı)", + "admin.license.singleChannelGuests.limitReached.tooltip.hint": "Tek kanallı konuk sayısı, toplam lisanslanmış koltuk sayısından fazla olamaz", + "admin.license.singleChannelGuests.limitReached.tooltip.title": "Tek kanallı konuk sayısı sınırına ulaşıldı", "admin.license.title": "Sürüm ve lisans", "admin.license.trial-request.accept-terms": "Denemeyi başlat üzerine tıklayarak, Mattermost yazılım değerlendirme sözleşmesi ve kişisel verilerin gizliliği ilkesi içeriklerini ve ürün ile ilgili e-postaları almayı kabul ediyorum.", "admin.license.trial-request.embargoed": "Ambargo altındaki ülkelere uygulanan kısıtlamalar nedeniyle istek işlenemedi.Belgeler bölümünden ayrıntılı bilgi alabilir ya da ihracat sınırlamaları ile ilgili sorularınız için legal@mattermost.com adresine yazabilirsiniz.", @@ -1713,6 +1736,7 @@ "admin.licenseSettings.teamEdition.teamEditionRightPanel.upgradedRestart": "Mattermost Enterprise tarifesine geçtiniz. Lütfen geçişi tamamlamak için şuradan sunucuyu yeniden başlatın:", "admin.lockTeammateNameDisplay": "Takım arkadaşı adı görünümü tüm kullanıcılar için kilitlensin: ", "admin.lockTeammateNameDisplayHelpText": "Açıldığında, kullanıcılar Ayarlar > Görünüm > Takım arkadaşı adı görünümü bölümündeki ayarları değiştiremez.", + "admin.log.AdvancedAuditLoggingJSONDescription": "Gelişmiş denetim günlüğü kaydı için JSON yapılandırması. Gelişmiş günlük kaydı ve kullandığı JSON biçimi ile ilgili ayrıntılı bilgi almak için belgeler bölümüne bakabilirsiniz.", "admin.log.AdvancedLoggingJSONDescription": "Gelişmiş günlük kaydı için JSON yapılandırması. Gelişmiş günlük kaydı ve kullandığı JSON biçimi ile ilgili ayrıntılı bilgi almak için belgeler bölümüne bakabilirsiniz.", "admin.log.AdvancedLoggingJSONPlaceholder": "JSON yapılandırmanızı yazın", "admin.log.AdvancedLoggingJSONTitle": "Gelişmiş günlük kaydı:", @@ -1783,6 +1807,7 @@ "admin.manage_tokens.userAccessTokensNone": "Herhangi bir kişisel erişim kodu yok.", "admin.member_list_group.name": "Ad", "admin.member_list_group.notFound": "Herhangi bir kullanıcı bulunamadı", + "admin.membership_policies.page_title": "Üyelik ilkeleri", "admin.metrics.enableClientMetricsDescription": "Açıldığında, Mattermost internet ve bilgisayar uygulama kullanıcıları için başarım izlemesi derlenir. Mattermost başarım izlemesini yapılandırmak ile ilgili ayrıntılı bilgi almak için lütfen belgelere bakabilirsiniz.", "admin.metrics.enableClientMetricsTitle": "İstemci başarımı izlemesi kullanılsın:", "admin.metrics.enableDescription": "Açıldığında, Mattermost başarım izleme derleme ve profillemesi kullanılır. Mattermost başarım izlemesi ayarları ile ilgili ayrıntılı bilgi almak için belgeler bölümüne bakabilirsiniz.", @@ -1802,6 +1827,8 @@ "admin.mobileSecurity.mobileAllowDownloads": "Site yapılandırması > Dosya paylaşımı ve indirmeler > Mobil aygıtlarda dosya indirilebilsin", "admin.mobileSecurity.screenCaptureDescription": "Mobil uygulamayı kullanırken ekran görüntülerinin ve video kayıtlarının alınmasını engeller. Ekran görüntüleri boş olur ve ekran kayıtları bulanıklaştırılır (iOS) veya siyah bir ekran görüntülenir (Android). Uygulama geçişi yapılırken de geçerlidir.", "admin.mobileSecurity.screenCaptureTitle": "Ekran görüntüsü alınamasın:", + "admin.mobileSecurity.sections.general.description": "Mobil uygulama için aygıt güvenlik özelliklerini yapılandırın.", + "admin.mobileSecurity.sections.intune.description": "Uygulama koruma ilkeleri için Microsoft Intune Mobil Uygulama Yönetimi (MAM) yapılandırın.", "admin.mobileSecurity.secureFilePreviewDescription": "{mobileAllowDownloads} seçeneği açık olsa bile çoğu dosya türündeki dosyaları indirmeyi, ön izlemeyi ve paylaşmayı engeller. Yalnızca PDF belgeleri, videolar ve görseller uygulama içinde ön izlenebilir. Dosyalar geçici olarak uygulama ön belleğinde tutulur ve dışa aktarılamaz veya paylaşılamaz.", "admin.mobileSecurity.secureFilePreviewTitle": "Güvenli dosya ön izleme kipini aç:", "admin.mobileSecurity.title": "Mobil güvenlik", @@ -1816,6 +1843,11 @@ "admin.notices.enableAdminNoticesTitle": "Yönetici bildirimleri kullanılsın: ", "admin.notices.enableEndUserNoticesDescription": "Açıldığında, tüm kullanıcılar, kullanıcı deneyimi iyileştirmek için kullanılabilecek istemci yükseltmeleri ve ilgili son kullanıcı özellikleri ile ilgili bildirimler alır. Belgelerimiz bölümünden bildirimler ile ilgili ayrıntılı bilgi alabilirsiniz.", "admin.notices.enableEndUserNoticesTitle": "Son kullanıcı bildirimleri kullanılsın: ", + "admin.oauth.dcrDescription": "Açıldığında, dış uygulamalar devingen olarak Mattermost üzerine OAuth 2.0 istemcisi olarak kayıt olabilir. Bu seçeneği yalnızca üçüncü taraf uygulamaların OAuth istemcilerini programlama ile kaydetmesine gerek duyuyorsanız açın.", + "admin.oauth.dcrRedirectURIAllowlistDesc": "Devingen İstemci Kaydı açık olduğunda, isteğe bağlı olarak hangi yönlendirme adreslerinin kaydedilebileceğini kısıtlayın. Virgül ile ayrılmış glob modelleri yazın (örnek: https://*.ornek.com/**). Boş bırakıldığında, tüm geçerli yönlendirme adreslerine izin verilir. Modeller * (tek parçalı yol) ve ** (çok parçalı yol) seçeneklerini destekler.", + "admin.oauth.dcrRedirectURIAllowlistPlaceholder": "Örnek: https://*.ornek.com/**, https://uygulama.ornek.com/donus", + "admin.oauth.dcrRedirectURIAllowlistTitle": "DCR yönlendirme adresi izin verilenler listesi:", + "admin.oauth.dcrTitle": "OAuth 2.0 devingen istemci kaydı kullanılsın: ", "admin.oauth.gitlab": "GitLab", "admin.oauth.google": "Google Apps", "admin.oauth.off": "OAuth 2.0 hizmet sağlayıcısı ile oturum açılamasın.", @@ -1860,6 +1892,8 @@ "admin.openid.off": "Bir OpenID hizmet sağlayıcısı ile oturum açılmasına izin verilmesin.", "admin.openid.office365": "Entra ID", "admin.openid.select": "Hizmet sağlayıcıyı seçin:", + "admin.openid.usePreferredUsernameDescription": "Açıldığında, kullanıcı için Mattermost kullanıcı adı olarak `preferred_username` isteğini kullanın. Bu özelliği kullanmak için kapsamda `profile` ve `openid` bulunmalıdır.", + "admin.openid.usePreferredUsernameTitle": "Yeğlenen kullanıcı adı kullanılsın:", "admin.openid_custom_feature_discovery.copy": "Apple, Okta, OneLogin ve benzer OIDC özellik kümesini destekleyen bir hizmet ile kimlik doğrulama ve tek oturum açma (SSO) işlemleri için OpenID Connect kullanın.", "admin.openid_custom_feature_discovery.title": "Mattermost Professional ile OpenID Connect bütünleştirmesini kullanın", "admin.openid_feature_discovery.copy": "Google, Entra ID, Apple, Okta, OneLogin ve benzer OIDC özellik kümesini destekleyen bir hizmet ile kimlik doğrulama ve tek oturum açma (SSO) işlemleri için OpenID Connect kullanın.", @@ -1874,6 +1908,71 @@ "admin.password.preview": "Hata iletisi ön izlemesi:", "admin.password.symbol": "En az bir simge (Örnek: \"~!@#$%^&*()\")", "admin.password.uppercase": "En az bir büyük harf", + "admin.permission_policies.add_policy": "İlke ekle", + "admin.permission_policies.delete": "Silebilir", + "admin.permission_policies.description": "Kullanıcı özniteliklerine göre dosya yükleme ve indirme izinlerini belirlemek için ilkeler oluşturur.", + "admin.permission_policies.edit": "Düzenleyici", + "admin.permission_policies.edit.cancel": "İptal", + "admin.permission_policies.edit.complex_expression_tooltip": "Karmaşık ifade algılandı. Basit ifade düzenleyicisi şu anda kullanılamıyor.", + "admin.permission_policies.edit.delete.button": "Sil", + "admin.permission_policies.edit.delete.subtitle": "Bu ilke silinecek ve silme işlemi geri alınamayacak.", + "admin.permission_policies.edit.delete.title": "İlkeyi sil", + "admin.permission_policies.edit.delete_confirmation.confirm": "İlkeyi sil", + "admin.permission_policies.edit.delete_confirmation.message": "Bu ilkeyi silmek istediğinize emin misiniz? Bu işlem geri alınamaz.", + "admin.permission_policies.edit.delete_confirmation.title": "İlkeyi silmeyi onayla", + "admin.permission_policies.edit.error.delete": "İlke silinirken sorun çıktı: {error}", + "admin.permission_policies.edit.error.expression_required": "Lütfen ilkeye bir ifade ekleyin", + "admin.permission_policies.edit.error.load": "İlke yüklenemedi", + "admin.permission_policies.edit.error.name_required": "Lütfen ilkeye bir ad verin", + "admin.permission_policies.edit.error.permissions_required": "Lütfen en az bir izin seçin", + "admin.permission_policies.edit.error.role_required": "Lütfen bir rol seçin", + "admin.permission_policies.edit.info_banner.evaluation_order": "İzinlerin değerlendirilme sırası: İzin ilkeleri (önce değerlendirilir) → Sistem şeması / Takım değişikliği şeması (hiçbir ilke uygulanmadığında varsayılana dönüş).", + "admin.permission_policies.edit.info_banner.link": "sistem izin şemaları", + "admin.permission_policies.edit.info_banner.title": "Bu ilke ile tanımlanan izinler, koşulları karşılandığında {link} değişikliğini yapar", + "admin.permission_policies.edit.name_exists": "Aynı adlı bir ilke zaten var. Lütfen farklı bir ad seçin.", + "admin.permission_policies.edit.no_usable_attributes_tooltip": "Lütfen düzenleyiciyi kullanacak kullanıcı özniteliklerini yapılandırın.", + "admin.permission_policies.edit.notice.button": "Kullanıcı özniteliklerini yapılandır", + "admin.permission_policies.edit.notice.text": "Henüz herhangi bir kullanıcı özniteliği yapılandırmamışsınız. Öznitelik temelli erişim denetimi için, bir dış sistemden (LDAP ya da SAML gibi) eşitlenen veya bu sunucuda el ile yapılandırılan ve etkinleştirilen kullanıcı özniteliklerinin bulunması gerekir.", + "admin.permission_policies.edit.notice.title": "Öznitelik temelli erişim denetimini kullanmak için lütfen kullanıcı özniteliklerini ve değerlerini ekleyin", + "admin.permission_policies.edit.permissions.add": "İzin ekle", + "admin.permission_policies.edit.permissions.column_header": "İzin", + "admin.permission_policies.edit.permissions.empty": "Bu ilkeye bir izin ekleyin", + "admin.permission_policies.edit.permissions.menu_aria": "İzin menüsü ekle", + "admin.permission_policies.edit.permissions.remove_aria": "İzni kaldır", + "admin.permission_policies.edit.permissions.subtitle": "Bu izinler, ilke koşulları karşılandığında varsayılan sistem izin şemasını değiştirir", + "admin.permission_policies.edit.permissions.title": "Hangi izinler değiştirilecek", + "admin.permission_policies.edit.policyName.label": "Erişim ilkesi adı:", + "admin.permission_policies.edit.policyName.placeholder": "Benzersiz bir ilke adı yazın", + "admin.permission_policies.edit.save": "Kaydet", + "admin.permission_policies.edit.serverError": "Yukarıdaki formda sorunlar var: {serverError}", + "admin.permission_policies.edit.switch_to_advanced": "Gelişmiş kipe geç", + "admin.permission_policies.edit.switch_to_simple": "Basit kipe geç", + "admin.permission_policies.edit.title": "Öznitelik temelli izin ilkesi", + "admin.permission_policies.edit.who.attributes_subtitle": "Kullanıcıların bu ilke için sahip olması gereken öznitelikleri ve değerlerini seçin", + "admin.permission_policies.edit.who.attributes_title": "Kullanıcı özniteliği gereksinimleri", + "admin.permission_policies.edit.who.role_label": "Hazır sistem rolleri listesinden bir rol seçin", + "admin.permission_policies.edit.who.role_menu_aria": "Rol seçimi menüsü", + "admin.permission_policies.edit.who.subtitle": "Kuralları kullanıcı özniteliklerine ve değerlerine göre tanımlayın", + "admin.permission_policies.edit.who.title": "Bu ilkenin kimlere uygulanacağı", + "admin.permission_policies.menu.aria_label": "İlke işlemleri menüsü", + "admin.permission_policies.name": "Ad", + "admin.permission_policies.no_policies_found": "Herhangi bir izin ilkesi bulunamadı", + "admin.permission_policies.page_title": "İzin ilkeleri", + "admin.permission_policies.permission.download_file.description": "Kullanıcılar dosyaları aygıtlarına indirebilsin", + "admin.permission_policies.permission.download_file.label": "Dosyaları indirebilir", + "admin.permission_policies.permission.upload_file.description": "Kullanıcıların bir ileti gönderirken dosya yükleyebilmesini sağlar", + "admin.permission_policies.permission.upload_file.label": "Dosyaları yükleyebilir", + "admin.permission_policies.policy_actions": "İzinler", + "admin.permission_policies.role": "Rol", + "admin.permission_policies.role.select": "Bir rol seçin", + "admin.permission_policies.role.system_admin.description": "Yalnızca sistem yöneticilerine uygulanır", + "admin.permission_policies.role.system_admin.label": "Sistem yöneticileri", + "admin.permission_policies.role.system_guest.description": "Yalnızca konuk kullanıcılara uygulanır", + "admin.permission_policies.role.system_guest.label": "Konuk kullanıcılar", + "admin.permission_policies.role.system_user.description": "Normal üyelere ve yöneticilere uygulanır", + "admin.permission_policies.role.system_user.label": "Üyeler ve sistem yöneticileri", + "admin.permission_policies.search_errored": "Bir sorun çıktı. Lütfen yeniden deneyin", + "admin.permission_policies.title": "İzin ilkeleri", "admin.permissions.group.convert_private_channel_to_public.description": "Özel kanalları herkese açık kanallara dönüştürebilir", "admin.permissions.group.convert_private_channel_to_public.name": "Herkese açık kanala dönüştürebilir", "admin.permissions.group.convert_public_channel_to_private.description": "Herkese açık kanalları özel kanallara dönüştürebilir", @@ -1900,6 +1999,14 @@ "admin.permissions.group.guest_use_group_mentions.name": "Gruplarda anabilir", "admin.permissions.group.integrations.description": "OAuth 2.0, bölü komutları, internet kancaları ve görsel ifadeleri yönetebilir.", "admin.permissions.group.integrations.name": "Bütünleştirme ve özelleştirmeler", + "admin.permissions.group.manage_agents.description": "Kendisinin ve başkalarının yapay zeka aracılarını yönetebilir.", + "admin.permissions.group.manage_agents.name": "Yapay zeka aracılarını yönetebilir", + "admin.permissions.group.manage_incoming_webhooks.description": "Kendisinin ve başkalarının gelen internet kancalarını yönetebilir.", + "admin.permissions.group.manage_incoming_webhooks.name": "Gelen internet kancalarını yönetebilir", + "admin.permissions.group.manage_oauth.description": "Kendisinin ve başkalarının OAuth 2.0 uygulamalarını yönetebilir.", + "admin.permissions.group.manage_oauth.name": "OAuth uygulamalarını yönetebilir", + "admin.permissions.group.manage_outgoing_webhooks.description": "Kendisinin ve başkalarının giden internet kancalarını yönetebilir.", + "admin.permissions.group.manage_outgoing_webhooks.name": "Giden internet kancalarını yönetebilir", "admin.permissions.group.manage_private_channel_bookmarks.description": "Yer imlerini ekleyebilir, düzenleyebilir, silebilir ve sıralayabilir", "admin.permissions.group.manage_private_channel_bookmarks.name": "Yer imlerini yönetebilir", "admin.permissions.group.manage_private_channel_members_and_read_groups.description": "Özel kanallara üyeler ekleyebilir ve çıkarabilir (kanal yöneticilerini de).", @@ -1910,6 +2017,8 @@ "admin.permissions.group.manage_public_channel_members_and_read_groups.name": "Kanal üyelerini yönetebilir", "admin.permissions.group.manage_shared_channels.description": "Paylaşılmış kanalları yönetme", "admin.permissions.group.manage_shared_channels.name": "Paylaşılmış kanallar", + "admin.permissions.group.manage_slash_commands.description": "Kendisinin ve başkalarının bölü komutlarını yönetebilir.", + "admin.permissions.group.manage_slash_commands.name": "Bölü komutlarını yönetebilir", "admin.permissions.group.playbook_private.description": "Özel senaryoları yönetme.", "admin.permissions.group.playbook_private.name": "Özel senaryoları yönetebilir", "admin.permissions.group.playbook_public.description": "Herkese açık senaryoları yönetme.", @@ -1936,6 +2045,8 @@ "admin.permissions.loadingMoreSchemes": "Yükleniyor...", "admin.permissions.permission.assign_system_admin_role.description": "Sistem yöneticisi rolü atama", "admin.permissions.permission.assign_system_admin_role.name": "Sistem yöneticisi rolü atayabilir", + "admin.permissions.permission.bypass_incoming_webhook_channel_lock.description": "Gelen internet kancalarının kilitlenmiş bir varsayılan kanal gerekmeden herhangi bir kanala gönderilmesini sağlar.", + "admin.permissions.permission.bypass_incoming_webhook_channel_lock.name": "Kanal kilidi aktarılabilsin", "admin.permissions.permission.convert_private_channel_to_public.description": "Özel kanalları herkese açık kanallara dönüştürme", "admin.permissions.permission.convert_private_channel_to_public.name": "Herkese açık kanala dönüştürebilir", "admin.permissions.permission.convert_public_channel_to_private.description": "Herkese açık kanalları özel kanallara dönüştürme", @@ -2000,14 +2111,34 @@ "admin.permissions.permission.manage_jobs.name": "Görevleri yönetebilir", "admin.permissions.permission.manage_oauth.description": "OAuth 2.0 uygulama kodları ekleme, düzenleme ve silme.", "admin.permissions.permission.manage_oauth.name": "OAuth uygulamalarını yönetebilir", + "admin.permissions.permission.manage_others_agent.description": "Başka kullanıcıların yapay zeka aracılarını oluşturup yönetebilir.", + "admin.permissions.permission.manage_others_agent.name": "Başkalarının yapay zeka aracılarını yönetebilir", + "admin.permissions.permission.manage_others_incoming_webhooks.description": "Başka kullanıcıların gelen internet kancalarını ekleyebilir, düzenleyebilir ve silebilir.", + "admin.permissions.permission.manage_others_incoming_webhooks.name": "Başkalarınınkileri yönetebilir", + "admin.permissions.permission.manage_others_outgoing_webhooks.description": "Başka kullanıcıların giden internet kancalarını ekleyebilir, düzenleyebilir ve silebilir.", + "admin.permissions.permission.manage_others_outgoing_webhooks.name": "Başkalarınınkileri yönetebilir", + "admin.permissions.permission.manage_others_slash_commands.description": "Başka kullanıcıların özel bölü komutlarını ekleyebilir, düzenleyebilir ve silebilir.", + "admin.permissions.permission.manage_others_slash_commands.name": "Başkalarınınkileri yönetebilir", "admin.permissions.permission.manage_outgoing_oauth_connections.description": "Giden OAuth kimlik bilgilerini oluşturma, düzenleme ve silme.", "admin.permissions.permission.manage_outgoing_oauth_connections.name": "Giden OAuth kimlik bilgilerini yönetebilir", "admin.permissions.permission.manage_outgoing_webhooks.description": "Diğer kullancıların giden internet kancalarını ekleme, düzenleme ve silme.", "admin.permissions.permission.manage_outgoing_webhooks.name": "Diğerlerininkileri yönetebilir", + "admin.permissions.permission.manage_own_agent.description": "Kendi yapay zeka aracılarını oluşturabilir ve yönetebilir.", + "admin.permissions.permission.manage_own_agent.name": "Kendi yapay zeka aracılarını yönetebilir", + "admin.permissions.permission.manage_own_incoming_webhooks.description": "Kendi internet kancalarını ekleyebilir, düzenleyebilir ve silebilir.", + "admin.permissions.permission.manage_own_incoming_webhooks.name": "Kendininkileri yönetebilir", + "admin.permissions.permission.manage_own_outgoing_webhooks.description": "Kendi giden internet kancalarını ekleyebilir, düzenleyebilir ve silebilir.", + "admin.permissions.permission.manage_own_outgoing_webhooks.name": "Kendininkileri yönetebilir", + "admin.permissions.permission.manage_own_slash_commands.description": "Kendi bölü komutlarınızı ekleyebilir, düzenleyebilir ve silebilir.", + "admin.permissions.permission.manage_own_slash_commands.name": "Kendininkileri yönetebilir", + "admin.permissions.permission.manage_private_channel_auto_translation.description": "Özel kanallarda otomatik çevirileri açabilir veya kapatabilir.", + "admin.permissions.permission.manage_private_channel_auto_translation.name": "Otomatik kanal çevirilerini yönetebilir", "admin.permissions.permission.manage_private_channel_banner.description": "Kanal bildirimini açın, kapatın ve düzenleyin.", "admin.permissions.permission.manage_private_channel_banner.name": "Kanal bildirimi yönetimi", "admin.permissions.permission.manage_private_channel_properties.description": "Özel kanal ad, başlık ve amaç yazılarını güncelleyebilir.", "admin.permissions.permission.manage_private_channel_properties.name": "Kanal ayarlarını düzenleyebilir", + "admin.permissions.permission.manage_public_channel_auto_translation.description": "Herkese açık kanallarda otomatik çevirileri açabilir veya kapatabilir.", + "admin.permissions.permission.manage_public_channel_auto_translation.name": "Kanal çevirilerini yönetebilir", "admin.permissions.permission.manage_public_channel_banner.description": "Kanal bildirimini açın, kapatın ve düzenleyin.", "admin.permissions.permission.manage_public_channel_banner.name": "Kanal bildirimi yönetimi", "admin.permissions.permission.manage_public_channel_properties.description": "Herkese açık kanal adı, başlığı ve amaç bilgilerini düzenleme.", @@ -2024,6 +2155,8 @@ "admin.permissions.permission.manage_system.name": "Sistemi yönetebilir", "admin.permissions.permission.manage_team.description": "Takımları yönetme", "admin.permissions.permission.manage_team.name": "Takımları yönetebilir", + "admin.permissions.permission.manage_team_access_rules.description": "Takımdaki kanalların öznitelik temelli üyelik ilkelerini yönetebilir.", + "admin.permissions.permission.manage_team_access_rules.name": "Kanal üyelik ilkelerini yönetebilir", "admin.permissions.permission.manage_team_roles.description": "Takım rollerini yönetme", "admin.permissions.permission.manage_team_roles.name": "Takım rollerini yönetebilir", "admin.permissions.permission.permanent_delete_user.description": "Kullanıcıyı kalıcı olarak silme", @@ -2094,6 +2227,11 @@ "admin.permissions.roles.system_read_only_admin.description": "Gözetim amacıyla yalnızca salt okunur olarak erişebilir.", "admin.permissions.roles.system_read_only_admin.name": "Görüntüleyici", "admin.permissions.roles.system_read_only_admin.type": "Sistem rolü", + "admin.permissions.roles.system_shared_channel_manager.description": "Var olan bağlantıları görebilir ve kanalların uzak sunucularla paylaşılmasını açabilir ya da kapatabilir.", + "admin.permissions.roles.system_shared_channel_manager.introduction": "Paylaşılan kanal yöneticisi hazır rolü, var olan bağlantılara bakma ve kanalların uzak sunucularla paylaşılmasını açma ya da kapatma iznini Sistem Yöneticisi dışındaki kullanıcılara atamak için kullanılabilir.", + "admin.permissions.roles.system_shared_channel_manager.name": "Paylaşılan kanal yöneticisi", + "admin.permissions.roles.system_shared_channel_manager.permissions_info": "Bu rolün manage_shared_channels izni var. Var olan bağlantılara bakabilir ve kanalların uzak sunucularla paylaşılmasını açabilir ya da kapatabilir.", + "admin.permissions.roles.system_shared_channel_manager.type": "Sistem rolü", "admin.permissions.roles.system_user.name": "Sistem kullanıcısı", "admin.permissions.roles.system_user_manager.description": "Yalnızca kullanıcıları yönetebilir.", "admin.permissions.roles.system_user_manager.name": "Kullanıcı yöneticisi", @@ -2298,10 +2436,23 @@ "admin.plugins.settings.marketplaceUrlDesc.empty": " Mağaza adresi yazılmalıdır.", "admin.plugins.settings.requirePluginSignature": "Uygulama eki imzası istensin:", "admin.plugins.settings.requirePluginSignatureDesc": "Açıldığında, uygulama ekleri dosya olarak yüklenemez ve yalnızca mağaza üzerinden kurulabilir. Mattermost sunucusu başlatılırken ve hazırlanırken her zaman uygulama ekleri doğrulanır. Ayrıntılı bilgi almak için belgeler bölümüne bakabilirsiniz.", + "admin.posts.burnOnRead.duration.10min": "10 dakika", + "admin.posts.burnOnRead.duration.1hour": "1 saat", + "admin.posts.burnOnRead.duration.1min": "1 dakika", + "admin.posts.burnOnRead.duration.30min": "30 dakika", + "admin.posts.burnOnRead.duration.5min": "5 dakika", + "admin.posts.burnOnRead.duration.8hours": "8 saat", "admin.posts.burnOnRead.duration.desc": "Okunduğunda yok edilecek iletilerin, görüntülendikten sonra yok edilmesine kadar geçecek geri sayım süresini ayarlar. Bir alıcı okunduğunda yok edilecek bir iletiyi görüntülemek için tıkladıktan sonra, ileti belirtilen sürenin sonunda o kullanıcı için kendini yok eder. Bu ayar tüm okunduğunda yok edilecek iletiler için geçerlidir.", "admin.posts.burnOnRead.duration.title": "Okunduğunda yok edilecek süre", "admin.posts.burnOnRead.enable.desc": "Açıldığında, kullanıcılar kanallarda, doğrudan iletilerde ve grup iletilerinde okunduğunda yok edilecek iletiler gönderebilir. Kapatıldığında, okunduğunda yok edilecek iletiler gönderme seçeneği kullanılamaz.", "admin.posts.burnOnRead.enable.title": "Okunduğunda yok edilecek iletiler kullanılsın", + "admin.posts.burnOnRead.maximumTTL.14days": "14 gün", + "admin.posts.burnOnRead.maximumTTL.1day": "1 gün", + "admin.posts.burnOnRead.maximumTTL.2minutes": "2 dakika", + "admin.posts.burnOnRead.maximumTTL.30days": "30 gün", + "admin.posts.burnOnRead.maximumTTL.3days": "3 gün", + "admin.posts.burnOnRead.maximumTTL.5minutes": "5 dakika", + "admin.posts.burnOnRead.maximumTTL.7days": "7 gün", "admin.posts.burnOnRead.maximumTTL.desc": "Okunduğunda yok edilecek iletilerin, gönderildikten sonra tutulacağı en uzun süreyi ayarlar. İleti, gönderildikten sonra belirtilen süre sonunda, o zamana kadar tüm alıcılar tarafından okunmamış olsa bile yok edilir.", "admin.posts.burnOnRead.maximumTTL.title": "Okunduğunda yok edilecek iletilerin en uzun ömrü", "admin.posts.persistentNotifications.desc": "Açıldığında, kullanıcılar acil iletilerin alıcıları için yinelenen bildirimleri tetikleyebilir. İleti önceliği ve kalıcı bildirimler ile ilgili ayrıntılı bilgi almak için belgeler bölümüne bakabilirsiniz.", @@ -2319,7 +2470,18 @@ "admin.posts.postPriority.title": "İleti önceliği", "admin.posts.scheduledPosts.description": "Açıldığında, kullanıcılar gelecekte gönderilecek iletiler zamanlayabilir.", "admin.posts.scheduledPosts.title": "Zamanlanmış iletiler", + "admin.posts.sections.burnOnRead.description": "Okunduktan otomatik olarak kendini yok eden iletilerin süresini belirler.", "admin.posts.sections.burnOnRead.title": "Okunduğunda yok edilecek iletiler", + "admin.posts.sections.drafts.description": "Taslak eşitlemesini ve zamanlanmış gönderimi ayarlar.", + "admin.posts.sections.drafts.title": "Taslaklar ve zamanlanmış iletiler", + "admin.posts.sections.performance.description": "İstemci başarımını ve görüntülemeyi koruyan sınırları yapılandırır.", + "admin.posts.sections.performance.title": "Başarım ve sınırlar", + "admin.posts.sections.previews.description": "Bağlantı ön izlemelerini ve gelişmiş biçimlendirmenin nasıl görüntüleneceğini yapılandırır.", + "admin.posts.sections.previews.title": "İçerik ve ön izlemeler", + "admin.posts.sections.priority.description": "Acil gönderim için ileti önceliğini ve yinelenen bildirimleri ayarlar.", + "admin.posts.sections.priority.title": "Öncelik ve acil bildirimler", + "admin.posts.sections.threads.description": "Konu tartışmalarını ve otomatik izleme varsayılanlarını yapılandırır.", + "admin.posts.sections.threads.title": "Konular", "admin.privacy.showEmailDescription": "Kapatıldığında, e-posta adresi sistem yöneticileri ve okuma/yazma izni olan Uyumluluk, Faturalama ve Kullanıcı Yönetimi rolleri dışındaki kullanıcılara görüntülenmez.", "admin.privacy.showEmailTitle": "E-posta adresi görüntülensin:", "admin.privacy.showFullNameDescription": "Kapatıldığında, tam ad sistem yöneticileri dışındaki kullanıcılara görüntülenmez. Tam ad yerine kullanıcı adı görüntülenir.", @@ -3818,7 +3980,6 @@ "channel_settings.save_changes_panel.banner_text.required_error": "Kanal bildirimi açıldığında yazısı boş olamaz", "channel_settings.save_changes_panel.reset": "Sıfırla", "channel_settings.save_changes_panel.standard_error": "Yukarıdaki formda sorunlar var", - "channel_settings.tab.access_control": "Erişim denetimi", "channel_settings.tab.archive": "Kanalı arşivle", "channel_settings.tab.configuration": "Yapılandırma", "channel_settings.tab.info": "Bilgiler", diff --git a/webapp/channels/src/i18n/zh-CN.json b/webapp/channels/src/i18n/zh-CN.json index ec4fb17394bd..c4302f939b83 100644 --- a/webapp/channels/src/i18n/zh-CN.json +++ b/webapp/channels/src/i18n/zh-CN.json @@ -68,11 +68,11 @@ "activity_log.browser": "浏览器:{browser}", "activity_log.firstTime": "首次活动:{date} {time}", "activity_log.lastActivity": "最后活动:{date} {time}", - "activity_log.logout": "注销", + "activity_log.logout": "退出登录", "activity_log.moreInfo": "更多信息", "activity_log.os": "系统:{os}", "activity_log.sessionId": "会话 ID:{id}", - "activity_log.sessionsDescription": "会话将在您通过设备上的新浏览器登录时创建。会话让您可以在系统管理员指定的时间段内使用 Mattermost 而无需重新登录。如果希望更早结束会话,请点击“注销”按钮。", + "activity_log.sessionsDescription": "会话将在您通过设备上的新浏览器登录时创建。会话让您可以在系统管理员指定的时间段内使用 Mattermost 而无需重新登录。如果希望更早结束会话,请点击“退出登录”按钮。", "activity_log_modal.android": "安卓", "activity_log_modal.androidNativeApp": "安卓原生应用", "activity_log_modal.androidNativeClassicApp": "旧版安卓原生应用", @@ -92,9 +92,9 @@ "add_command.description.help": "斜杠命令的描述。", "add_command.displayName": "标题", "add_command.displayName.help": "指定斜杠命令设置页面的标题,最多 64 字符。", - "add_command.doneHelp": "您的斜杠命令已设定。以下令牌将包含在传出负载。请用这来验证请求是否来自您的 Mattermost 团队(详见斜杠命令)。", + "add_command.doneHelp": "您的斜杠命令已设置。以下令牌将包含在传出负载中。请用它来验证请求是否来自您的 Mattermost 团队(详见斜杠命令)。", "add_command.iconUrl": "回复图标", - "add_command.iconUrl.help": "(可选) 输入个用于斜杠命令发布消息使用的 .png 或 .jpg 文件网址。文件必须至少 128x128 像素。如果留空,将使用您的个人资料照片。", + "add_command.iconUrl.help": "(可选)输入一个用于斜杠命令发布消息的 .png 或 .jpg 文件 URL。文件必须至少为 128 x 128 像素。如果留空,将使用您的个人资料照片。", "add_command.iconUrl.placeholder": "https://www.example.com/myicon.png", "add_command.method": "请求方式", "add_command.method.get": "GET", @@ -119,7 +119,7 @@ "add_command.url.placeholder": "必须以 http:// 或 https:// 开头", "add_command.urlRequired": "请求 URL 为必填项", "add_command.username": "回复用户名", - "add_command.username.help": "(可选) 指定发布此斜杠命令响应时使用的名称。 用户名最多可以 22 个字符并且包含小写字母、数字以及符号“-“,“ _”和“.”。 如果留空,则使用您的 Mattermost 用户名。", + "add_command.username.help": "(可选)指定发布此斜杠命令响应时使用的名称。用户名最多 22 个字符,可以包含小写字母、数字以及符号“-”、“_”和“.”。如果留空,则使用您的 Mattermost 用户名。", "add_command.username.placeholder": "用户名", "add_emoji.cancel": "取消", "add_emoji.customNameTaken": "此名称已被自定义表情符使用。请选择其他名称。", @@ -127,14 +127,14 @@ "add_emoji.header": "添加", "add_emoji.image": "图像", "add_emoji.image.button": "选择", - "add_emoji.image.help": "指定个表情符使用的 .gif、.png 或 .jpg 文件。文件可最大 512 KB。尺寸将在保留比例下调整到 128x128 像素。", + "add_emoji.image.help": "指定一个供表情符使用的 .gif、.png 或 .jpg 文件。文件最大 512 KB。尺寸将在保留比例下调整到 128 x 128 像素。", "add_emoji.imageRequired": "表情符的图片为必填项", "add_emoji.imageTooLarge": "无法创建表情符。图片大小必须小于 512 KB。", "add_emoji.name": "名称", - "add_emoji.name.help": "指定表情符名称,最多 64 个字符。 它可以包含小写字母,数字以及符号“-”、“+”以及“ _”。", + "add_emoji.name.help": "指定表情符名称,最多 64 个字符。它可以包含小写字母、数字以及符号“-”、“+”和“_”。", "add_emoji.nameInvalid": "表情符名称只能包含小写字母、数字以及符号“-”、“+”和“_”。", - "add_emoji.nameRequired": "表情符号需要个名称", - "add_emoji.nameTaken": "此名称已被系统表情符号使用。请重新选个名称。", + "add_emoji.nameRequired": "表情符号需要一个名称", + "add_emoji.nameTaken": "此名称已被系统表情符号使用。请重新选择一个名称。", "add_emoji.preview": "预览", "add_emoji.preview.sentence": "这句话包含{image}。", "add_emoji.save": "保存", @@ -143,29 +143,29 @@ "add_groups_to_team.title": "添加新群组到{teamName}团队", "add_incoming_webhook.cancel": "取消", "add_incoming_webhook.channel": "频道", - "add_incoming_webhook.channel.help": "这是传入 webhook 负载的默认公共或私有频道。设置 webhook 时,您必须属于该私有频道。", + "add_incoming_webhook.channel.help": "这是传入 Webhook 负载的默认公共或私有频道。设置 Webhook 时,您必须属于该私有频道。", "add_incoming_webhook.channelLocked": "锁定至此频道", - "add_incoming_webhook.channelLocked.help": "如果设置,传入 webhook 只能发送至指定的频道。", + "add_incoming_webhook.channelLocked.help": "如果设置,传入 Webhook 只能发送至指定的频道。", "add_incoming_webhook.channelRequired": "必须填入有效的频道", "add_incoming_webhook.description": "描述", - "add_incoming_webhook.description.help": "描述您的传入 webhook。", + "add_incoming_webhook.description.help": "描述您的传入 Webhook。", "add_incoming_webhook.displayName": "标题", - "add_incoming_webhook.displayName.help": "指定个 webhook 设定页面中的标题,最多 64 字符。", - "add_incoming_webhook.doneHelp": "您的传入 webhook 已设定。请发送数据到以下网址(详情见传入 Webhook)。", + "add_incoming_webhook.displayName.help": "指定此 Webhook 设置页面中的标题,最多 64 个字符。", + "add_incoming_webhook.doneHelp": "您的传入 Webhook 已设置。请向以下 URL 发送数据(详情见传入 Webhook)。", "add_incoming_webhook.icon_url": "个人资料图片", - "add_incoming_webhook.icon_url.help": "输入个此整合个人资料的 .png 或 .jpg 文件。文件应该至少 128x128 像素。如果留空,个人资料照片将使用 webhook 创建者的。", + "add_incoming_webhook.icon_url.help": "输入一个用于此集成个人资料的 .png 或 .jpg 文件。文件应至少为 128 x 128 像素。如果留空,将使用 Webhook 创建者的个人资料照片。", "add_incoming_webhook.save": "保存", "add_incoming_webhook.saving": "保存中…", "add_incoming_webhook.url": "URL:{url}", "add_incoming_webhook.username": "用户名", - "add_incoming_webhook.username.help": "指定此集成将用于发送消息的用户名。 用户名最长为 22 个字符,并且可以包含小写字母、数字,以及符号“-”,“ _”和“.”。 如果留空,则使用 webhook 创建者的名称。", + "add_incoming_webhook.username.help": "指定此集成发送消息时使用的用户名。用户名最长为 22 个字符,可以包含小写字母、数字以及符号“-”、“_”和“.”。如果留空,则使用 Webhook 创建者的名称。", "add_oauth_app.callbackUrls.help": "服务在用户接收或拒绝授权您的应用的授权后,重定向用户的 URI,同时用来处理授权码或访问令牌。必须为有效的 URL,且以 http:// 或 https:// 开头。", "add_oauth_app.callbackUrlsRequired": "必须填入一个或多个回调 URL。", "add_oauth_app.clientId": "Client ID:{id}", "add_oauth_app.clientSecret": "Client Secret:{secret}", "add_oauth_app.description.help": "描述您的 OAuth 2.0 应用。", "add_oauth_app.descriptionRequired": "OAuth 2.0 应用描述为必填项。", - "add_oauth_app.doneHelp": "您的 OAuth 2.0 应用已完成设置。请在为您的应用申请授权时使用以下 Client ID 和 Client Secret(详细信息见 oAuth 2.0 Applications)。", + "add_oauth_app.doneHelp": "您的 OAuth 2.0 应用已完成设置。请在为您的应用申请授权时使用以下 Client ID 和 Client Secret(详细信息见 OAuth 2.0 应用)。", "add_oauth_app.doneHelp.public": "您的 OAuth 2.0 公共客户端应用已设置完成。请在为您的应用请求授权时使用以下客户端 ID。公共客户端必须使用 PKCE 进行授权(详情请参见 oAuth 2.0 应用)。", "add_oauth_app.doneUrlHelp": "这些是您已授权的重定向 URL。", "add_oauth_app.header": "添加", @@ -175,7 +175,7 @@ "add_oauth_app.name.help": "指定您的 OAuth 2.0 应用的显示名,最多 64 个字符。", "add_oauth_app.nameRequired": "OAuth 2.0 应用名为必填项。", "add_oauth_app.public.help": "如果为 true,则 OAuth 2.0 应用为公共客户端(无客户端密钥)。公共客户端必须使用 PKCE 进行授权。如果为 false,则该应用为带有客户端密钥的保密客户端。此设置在应用创建后无法更改。", - "add_oauth_app.trusted.help": "当设为是时,OAuth 2.0 应用将被 Mattermost 服务器信任且不需用户同意授权。当设为否时,将会弹出新窗口询问用户同意或拒绝授权。", + "add_oauth_app.trusted.help": "当设为是时,OAuth 2.0 应用将被 Mattermost 服务器信任且不需要用户同意授权。当设为否时,将会弹出新窗口询问用户同意或拒绝授权。", "add_oauth_app.url": "URL:{url}", "add_outgoing_oauth_connection.add": "添加", "add_outgoing_oauth_connection.audienceUrls.help": "接收带有 OAuth 令牌的请求的 URL,例如您的自定义斜杠命令处理程序的端点。必须是以 http:// 或 https:// 开头的有效 URL。", @@ -187,7 +187,7 @@ "add_outgoing_oauth_connection.clientSecret": "Client Secret:********", "add_outgoing_oauth_connection.client_id.help": "指定您的 OAuth 连接的 Client ID。", "add_outgoing_oauth_connection.client_id.label": "Client ID", - "add_outgoing_oauth_connection.client_id.required": "OAuth 连接的 Client Id 为必填项。", + "add_outgoing_oauth_connection.client_id.required": "OAuth 连接的 Client ID 为必填项。", "add_outgoing_oauth_connection.client_secret.help": "指定您的 OAuth 连接的 Client Secret。", "add_outgoing_oauth_connection.client_secret.label": "Client Secret", "add_outgoing_oauth_connection.client_secret.required": "OAuth 连接的 Client Secret 为必填项。", @@ -221,34 +221,34 @@ "add_outgoing_webhook.callbackUrlsRequired": "必须填入一个或多个回调 URL", "add_outgoing_webhook.cancel": "取消", "add_outgoing_webhook.channel": "频道", - "add_outgoing_webhook.channel.help": "如果您指定至少一个触发词,则此字段是可选的。 指定将负载传递到 webhook 的公共频道。", + "add_outgoing_webhook.channel.help": "如果您指定至少一个触发词,则此字段是可选的。指定负载将传递到的公共频道。", "add_outgoing_webhook.contentType.help1": "指定用于发送请求的内容类型。", "add_outgoing_webhook.contentType.help2": "如果服务器在请求正文中以 URL 格式对参数进行编码,请选择 application/x-www-form-urlencoded。", "add_outgoing_webhook.contentType.help3": "如果服务器请求内容为 JSON,请选择 application/json。", "add_outgoing_webhook.content_Type": "内容类型", "add_outgoing_webhook.description": "描述", - "add_outgoing_webhook.description.help": "描述您的传出 webhook。", + "add_outgoing_webhook.description.help": "描述您的传出 Webhook。", "add_outgoing_webhook.displayName": "标题", - "add_outgoing_webhook.displayName.help": "指定 webhook 设定页面的标题,最多 64 个字符。", - "add_outgoing_webhook.doneHelp": "您的传出 webhook 已设定。以下令牌将包含在传出负载。请用它来验证请求是否来自您的 Mattermost 团队(详见传出 Webhook)。", + "add_outgoing_webhook.displayName.help": "指定此 Webhook 设置页面中的标题,最多 64 个字符。", + "add_outgoing_webhook.doneHelp": "您的传出 Webhook 已设置。以下令牌将包含在传出负载中。请用它来验证请求是否来自您的 Mattermost 团队(详见传出 Webhook)。", "add_outgoing_webhook.header": "传出 Webhook", "add_outgoing_webhook.icon_url": "个人资料图片", - "add_outgoing_webhook.icon_url.help": "输入个此整合发布消息时使用的个人资料照片的 .png 或 .jpg 文件网址。该文件应该至少 128x128 像素。如果留空,将使用 webhook 创建者的个人资料照片 。", + "add_outgoing_webhook.icon_url.help": "输入一个用于此集成发布消息时显示的个人资料照片 .png 或 .jpg 文件 URL。该文件应至少为 128 x 128 像素。如果留空,将使用 Webhook 创建者的个人资料照片。", "add_outgoing_webhook.save": "保存", "add_outgoing_webhook.saving": "保存中…", "add_outgoing_webhook.token": "令牌:{token}", - "add_outgoing_webhook.token.message": "确保添加此机器人到您想互动的团队以及频道。查看文档以了解更多。", + "add_outgoing_webhook.token.message": "确保将此机器人添加到您想互动的团队和频道。查看文档以了解更多。", "add_outgoing_webhook.triggerWords": "触发词(一行一个)", - "add_outgoing_webhook.triggerWords.help": "指定将 HTTP POST 请求发送到您的应用程序的触发词。 触发器可以根据频道、传出 webhook 或两者均有。如果仅选择频道,则触发词是可选的。但当您设为两者均有时,消息必须匹配这两个值。", + "add_outgoing_webhook.triggerWords.help": "指定将 HTTP POST 请求发送到您的应用的触发词。触发器可以按频道、传出 Webhook 或两者共同触发。如果仅选择频道,则触发词是可选的。但当设置为两者共同触发时,消息必须匹配这两个值。", "add_outgoing_webhook.triggerWordsOrChannelRequired": "需要一个有效的频道或一个触发关键字列表", "add_outgoing_webhook.triggerWordsTriggerWhen": "触发时机", - "add_outgoing_webhook.triggerWordsTriggerWhen.help": "指定何时触发传出 webhook。", - "add_outgoing_webhook.triggerWordsTriggerWhenFullWord": "第一个完全符合触发关键字", - "add_outgoing_webhook.triggerWordsTriggerWhenStartsWith": "第一字以触发关键字为开头", + "add_outgoing_webhook.triggerWordsTriggerWhen.help": "指定何时触发传出 Webhook。", + "add_outgoing_webhook.triggerWordsTriggerWhenFullWord": "第一个完全匹配触发关键字", + "add_outgoing_webhook.triggerWordsTriggerWhenStartsWith": "第一个词以触发关键字开头", "add_outgoing_webhook.username": "用户名", - "add_outgoing_webhook.username.help": "指定此集成将发布为的用户名。 用户名最多 22 个字符,并且小写、数字以及符号“-”,“ _”和“.”。 如果留空,则使用 webhook 创建者的名称。", + "add_outgoing_webhook.username.help": "指定此集成发布消息时使用的用户名。用户名最多 22 个字符,可以包含小写字母、数字以及符号“-”、“_”和“.”。如果留空,则使用 Webhook 创建者的名称。", "add_teams_to_scheme.confirmation.accept": "是的,移动团队", - "add_teams_to_scheme.confirmation.message": "此团队以在其他的团队方案,您确定要移动到此团队方案?", + "add_teams_to_scheme.confirmation.message": "此团队已在其他团队方案中,您确定要移动到此团队方案吗?", "add_teams_to_scheme.confirmation.title": "团队覆盖方案更改?", "add_teams_to_scheme.modalTitle": "添加团队至团队选择列表", "add_teams_to_scheme.select_team.label": "选择团队 {label}", @@ -272,7 +272,7 @@ "admin.access_control.cel.line_and_column_number": "L{lineNumber}:{columnNumber}", "admin.access_control.cel.type_expression": "输入表达式...", "admin.access_control.cel.validating": "验证中…", - "admin.access_control.cel_help_modal.external_link": "访问CEL 文档以了解更多。", + "admin.access_control.cel_help_modal.external_link": "访问 CEL 文档以了解更多。", "admin.access_control.cel_help_modal.important_notes_title": "重要提示", "admin.access_control.cel_help_modal.subheader": "您可以通过 CEL 定义条件以过滤用户属性,并控制资源访问。", "admin.access_control.cel_help_modal.title": "通用表达式语言(Common Expression Language, CEL)", @@ -324,7 +324,6 @@ "admin.access_control.policy.edit_policy.error.name_required": "请为策略添加名称", "admin.access_control.policy.edit_policy.error.unassign_channels": "取消分配频道时出错:{error}", "admin.access_control.policy.edit_policy.error.update_active_status": "更新策略活动状态时出错:{error}", - "admin.access_control.policy.edit_policy.no_private_channels": "没有可添加到此策略的私有频道。", "admin.access_control.policy.edit_policy.no_usable_attributes_tooltip": "请配置用户属性以使用编辑器。", "admin.access_control.policy.edit_policy.notice.button": "配置用户属性", "admin.access_control.policy.edit_policy.notice.text": "您尚未配置任何用户属性。基于属性的访问控制需要从外部系统(如 LDAP 或 SAML)同步或在此服务器上手动配置和启用的用户属性。要开始使用基于属性的访问控制,请在系统属性中配置用户属性。", @@ -352,6 +351,8 @@ "admin.access_control.table_editor.operator": "操作符", "admin.access_control.table_editor.operator.contains": "包含", "admin.access_control.table_editor.operator.ends_with": "结束于", + "admin.access_control.table_editor.operator.has_all_of": "包含全部", + "admin.access_control.table_editor.operator.has_any_of": "包含任意", "admin.access_control.table_editor.operator.in": "存在于", "admin.access_control.table_editor.operator.is": "是", "admin.access_control.table_editor.operator.is_not": "不是", @@ -426,7 +427,7 @@ "admin.billing.company_info_edit.save": "保存信息", "admin.billing.company_info_edit.title": "编辑公司信息", "admin.billing.deleteWorkspace.failureModal.buttonText": "重试", - "admin.billing.deleteWorkspace.progressModal.title": "删除你的工作区", + "admin.billing.deleteWorkspace.progressModal.title": "删除您的工作区", "admin.billing.deleteWorkspace.resultModal.ContactSupport": "联系客服", "admin.billing.deleteWorkspace.successModal.subtitle": "您的工作区现在已被删除。感谢您的使用。", "admin.billing.deleteWorkspace.successModal.title": "您的工作区已被删除", @@ -447,7 +448,7 @@ "admin.billing.history.title": "帐单记录", "admin.billing.history.total": "总计", "admin.billing.history.transactions": "交易", - "admin.billing.subscription.byClickingYouAgree": "点击{buttonContent} ,表示您同意{legalText}", + "admin.billing.subscription.byClickingYouAgree": "点击{buttonContent},表示您同意{legalText}", "admin.billing.subscription.cancelSubscriptionSection.contactUs": "联系我们", "admin.billing.subscription.cancelSubscriptionSection.description": "目前,只能在客户支持代表的帮助下删除工作空间。", "admin.billing.subscription.cancelSubscriptionSection.title": "取消订阅", @@ -591,7 +592,6 @@ "admin.channel_settings.channel_detail.profileTitle": "频道资料", "admin.channel_settings.channel_detail.remove_policy": "移除策略", "admin.channel_settings.channel_detail.remove_policy.aria_label": "移除策略", - "admin.channel_settings.channel_detail.select_policy": "为此频道选择一个访问策略来限制成员身份", "admin.channel_settings.channel_detail.select_policy_description": "访问控制策略会基于用户属性限制成员身份。", "admin.channel_settings.channel_detail.select_policy_title": "选择一个访问控制策略", "admin.channel_settings.channel_detail.syncedGroupsDescription": "根据用户组身份添加或移除频道成员。", @@ -603,7 +603,6 @@ "admin.channel_settings.channel_details.isPublic": "公共频道或私有频道", "admin.channel_settings.channel_details.isPublicDescr": "如果频道可以被任何用户发现并加入,选择公共。{br}如果需要频道邀请才能加入,则选择私有。{br}使用此开关以将此频道从公共切换为私有,或从私有切换为公共。", "admin.channel_settings.channel_details.policy_enforced_title": "启用基于属性的频道访问", - "admin.channel_settings.channel_details.private_channel_only": "仅私密频道可以基于属性。", "admin.channel_settings.channel_details.syncGroupMembers": "同步群组成员", "admin.channel_settings.channel_details.syncGroupMembersDescr": "当启用时,从群组添加或移除用户将从此频道添加或移除。添加用户到群组将是唯一邀请成员到此频道的方法。了解更多", "admin.channel_settings.channel_details.unarchiveChannel": "取消归档频道", @@ -641,12 +640,12 @@ "admin.channel_settings.channel_moderation.manageMembersDesc": "成员是否允许添加或移除人员。", "admin.channel_settings.channel_moderation.members": "成员", "admin.channel_settings.channel_moderation.permissions": "权限", - "admin.channel_settings.channel_moderation.postReactions": "消息反应", - "admin.channel_settings.channel_moderation.postReactions.disabledBoth": "成员与访客的消息反应已在[{scheme_name}](../permissions/{scheme_link})中禁用。", - "admin.channel_settings.channel_moderation.postReactions.disabledGuest": "访客的消息反应已在[{scheme_name}](../permissions/{scheme_link})中禁用。", - "admin.channel_settings.channel_moderation.postReactions.disabledMember": "成员的消息反应已在[{scheme_name}](../permissions/{scheme_link})中禁用。", - "admin.channel_settings.channel_moderation.postReactionsDesc": "成员与访客是否允许使用反应。", - "admin.channel_settings.channel_moderation.postReactionsDescMembers": "成员是否允许使用反应。", + "admin.channel_settings.channel_moderation.postReactions": "消息表情回应", + "admin.channel_settings.channel_moderation.postReactions.disabledBoth": "成员与访客的消息表情回应已在[{scheme_name}](../permissions/{scheme_link})中禁用。", + "admin.channel_settings.channel_moderation.postReactions.disabledGuest": "访客的消息表情回应已在[{scheme_name}](../permissions/{scheme_link})中禁用。", + "admin.channel_settings.channel_moderation.postReactions.disabledMember": "成员的消息表情回应已在[{scheme_name}](../permissions/{scheme_link})中禁用。", + "admin.channel_settings.channel_moderation.postReactionsDesc": "成员与访客是否允许使用表情回应。", + "admin.channel_settings.channel_moderation.postReactionsDescMembers": "成员是否允许使用表情回应。", "admin.channel_settings.channel_moderation.subtitle": "管理频道成员与访客可使用的操作。", "admin.channel_settings.channel_moderation.subtitleMembers": "管理频道成员可使用的操作。", "admin.channel_settings.channel_moderation.title": "高级访问控制", @@ -654,7 +653,7 @@ "admin.channel_settings.channel_row.managementMethod.attribute_based": "基于属性", "admin.channel_settings.channel_row.managementMethod.group": "群组同步", "admin.channel_settings.channel_row.managementMethod.manual": "手动邀请", - "admin.channel_settings.description": "管理频道设定。", + "admin.channel_settings.description": "管理频道设置。", "admin.channel_settings.groupsPageTitle": "{siteName} 频道", "admin.channel_settings.title": "频道", "admin.channels.filterBy.team.loading": "加载团队中", @@ -679,7 +678,7 @@ "admin.cluster.enableTitle": "开启高可用性模式:", "admin.cluster.loadedFrom": "此配置文件是从节点 ID {clusterId} 加载的。如果您在通过负载均衡器访问系统控制台时遇到问题,请查看我们的文档中的故障排除指引。", "admin.cluster.noteDescription": "修改这段属性需要重启服务器才能生效。", - "admin.cluster.should_not_change": "警告:这些设定可能不会与集群中的其他服务器同步。高可用性节点间的通讯只会在您确保所有服务器中的 config.json 一致并重启 Mattermost 后开启。请查看文档以了解如何从集群中添加或删除服务器。如果您在通过负载均衡器访问系统控制台时遇到问题,请查看我们的文档中的故障排除指引。", + "admin.cluster.should_not_change": "警告:这些设置可能不会与集群中的其他服务器同步。高可用性节点间的通讯只会在您确保所有服务器中的 config.json 一致并重启 Mattermost 后开启。请查看文档以了解如何从集群中添加或删除服务器。如果您在通过负载均衡器访问系统控制台时遇到问题,请查看我们的文档中的故障排除指引。", "admin.cluster.status_table.config_hash": "配置文件哈希", "admin.cluster.status_table.hostname": "主机名", "admin.cluster.status_table.reload": " 重新加载集群状态", @@ -705,7 +704,7 @@ "admin.complianceExport.exportFormat.globalrelay": "Global Relay EML", "admin.complianceExport.exportFormat.title": "导出格式:", "admin.complianceExport.exportFormatDetail.details": "如果为 Actiance XML,合规导出文件会被写入到配置的本地存储目录的 exports 子目录。如果为 Global Relay EML,会被发送到配置的邮箱地址。", - "admin.complianceExport.exportFormatDetail.intro": "合规导出的格式。对应你想导入数据的系统。", + "admin.complianceExport.exportFormatDetail.intro": "合规导出的格式。对应您想导入数据的系统。", "admin.complianceExport.exportJobStartTime.description": "设置每日合规导出任务开始的时间。设置一个较少人使用的时间。必须为 24 小时制并格式为 HH:MM。", "admin.complianceExport.exportJobStartTime.example": "例如:“02:00”", "admin.complianceExport.exportJobStartTime.title": "合规导出时间:", @@ -770,11 +769,11 @@ "admin.connectionSecurityTls.title": "TLS", "admin.connectionSecurityTlsDescription": "加密 Mattermost 和您的服务器之间的通信。", "admin.contentFlagging.title": "内容标记", - "admin.customProfileAttribDesc.ldap": "(可选)用于填充用户在 Mattermost 中{name}的 AD/LDAP 服务器属性。设置后,用户无法编辑他们的{name},因为该项将与 LDAP 服务器同步。如果留空,用户可以在帐户菜单 > 账号设置 > 个人资料中自行设置{name}。", + "admin.customProfileAttribDesc.ldap": "(可选)用于填充用户在 Mattermost 中{name}的 AD/LDAP 服务器属性。设置后,用户无法编辑他们的{name},因为该项将与 LDAP 服务器同步。如果留空,用户可以在账号菜单 > 账号设置 > 个人资料中自行设置{name}。", "admin.customProfileAttribDesc.saml": "(可选)用于填充用户在 Mattermost 中{name}的 SAML 断言属性。", "admin.customProfileAttribWarning": "(警告) 如果该字段设置为同步,此属性将被转换为一个文本属性。", "admin.customProfileAttributes.managedByPlugin": "此字段由 {pluginId} 插件管理,且不能被编辑。", - "admin.customProfileAttributes.subtitle": "你可以前往用户属性页面添加或移除用户属性。", + "admin.customProfileAttributes.subtitle": "您可以前往用户属性页面添加或移除用户属性。", "admin.customProfileAttributes.title": "用户属性同步", "admin.custom_terms_of_service_feature_discovery.copy": "创建您自己的服务条款,新用户在访问桌面、网页或移动设备上的 Mattermost 之前必须接受该条款。", "admin.custom_terms_of_service_feature_discovery.title": "使用 Mattermost 企业版创建自定义服务条款", @@ -791,26 +790,26 @@ "admin.customization.announcement.enableBannerDesc": "在所有团队开启公告横幅。", "admin.customization.announcement.enableBannerTitle": "启用系统范围通知:", "admin.customization.appDownloadLinkDesc": "添加 Mattermost 应用下载页的链接。当存在链接时,产品菜单将有“下载 Mattermost 应用”选项让用户找到下载页面。留空此字段将从产品菜单中隐藏此选项。", - "admin.customization.appDownloadLinkTitle": "Mattermost 应用下载页面网址:", + "admin.customization.appDownloadLinkTitle": "Mattermost 应用下载页面 URL:", "admin.customization.clientSideUserIds": "客户端侧用户 id:", "admin.customization.clientSideUserIdsDesc": "设置您想跟踪客户端侧指标的用户 id。以逗号分隔。", "admin.customization.clientSideUserIdsPlaceholder": "例如:“userid1,userid2”", "admin.customization.customUrlSchemes": "自定义 URL 方案:", "admin.customization.customUrlSchemesDesc": "允许消息自动链接以以下模式为开头的内容。默认下,以下模式将创建链接:“http”、“https”、“ftp”、“tel”以及“mailto”。", "admin.customization.customUrlSchemesPlaceholder": "例如:“git,smtp”", - "admin.customization.enableCustomEmojiDesc": "允许用户创建在消息中使用的自定义表情符。当启用时,可以通过频道中表情符选择器中访问自定义表情符设定。", + "admin.customization.enableCustomEmojiDesc": "允许用户创建在消息中使用的自定义表情符。当启用时,可以通过频道中表情符选择器中访问自定义表情符设置。", "admin.customization.enableCustomEmojiTitle": "启用自定义表情:", "admin.customization.enableDesktopLandingPageDesc": "是否在用户首次使用 Mattermost 时提示使用桌面应用。", "admin.customization.enableDesktopLandingPageTitle": "启用桌面应用着陆页:", - "admin.customization.enableEmojiPickerDesc": "表情符选择器允许用户选择表情作为反应或用在消息中。在有大量自定义表情符时开启表情符选择器可能降低性能。", + "admin.customization.enableEmojiPickerDesc": "表情符选择器允许用户选择表情,用作表情回应或插入消息。在有大量自定义表情符时开启表情符选择器可能降低性能。", "admin.customization.enableEmojiPickerTitle": "开启表情符选择器:", - "admin.customization.enableGifPickerDesc": "允许用户在表情符选择器中选择 Gfycat 整合中的 GIF 图片。", + "admin.customization.enableGifPickerDesc": "允许用户在表情符选择器中选择 Gfycat 集成中的 GIF 图片。", "admin.customization.enableGifPickerTitle": "开启 GIF 选择器:", - "admin.customization.enableInlineLatexDesc": "当为是时,用户可在文本周围呈现带有美元符号的内联 Latex 代码。当为否时,Latex 只能使用语法高亮显示在代码块中。 在我们的文档中了解有关文本格式的更多信息。", + "admin.customization.enableInlineLatexDesc": "当设为是时,用户可在文本周围呈现带有美元符号的内联 Latex 代码。当设为否时,Latex 只能使用语法高亮显示在代码块中。在我们的文档中了解有关文本格式的更多信息。", "admin.customization.enableInlineLatexTitle": "启用内联 Latex 渲染:", "admin.customization.enableLatexDesc": "在代码块中启用 LaTeX 渲染。如果未启用,LaTeX 代码将以高亮显示。\n\n如果存在不受信任的用户,不建议启用 LaTeX 渲染功能。", "admin.customization.enableLatexTitle": "开启 Latex 渲染:", - "admin.customization.enableLinkPreviewsDesc": "可用时在消息下发显示网址内容、图片链接以及 YouTube 链接的预览。服务必须可以连接到需要预览的内容的网站,必要时需要设定防火墙。用户可以在设定 > 显示 > 网址链接预览关闭此功能。", + "admin.customization.enableLinkPreviewsDesc": "可用时在消息下方显示 URL 内容、图片链接以及 YouTube 链接的预览。服务必须可以连接到需要预览的内容的网站,必要时需要设置防火墙。用户可以在设置 > 显示 > URL 链接预览关闭此功能。", "admin.customization.enableLinkPreviewsTitle": "启用网站链接预览:", "admin.customization.enablePermalinkPreviewsDesc": "当启用时,指向 Mattermost 消息的链接将为有权访问原始消息的任何用户生成预览。请查看我们的文档以了解详细信息。", "admin.customization.enablePermalinkPreviewsTitle": "开启消息链接预览:", @@ -818,23 +817,23 @@ "admin.customization.enableSVGsTitle": "开启 SVG:", "admin.customization.frameAncestorDesc": "允许 Mattermost 网页客户端被嵌入其他网站。输入一个允许内嵌 Mattermost 网页客户端的域名列表,以空格分隔。留空以禁止内嵌。", "admin.customization.frameAncestorTitle": "框架上级:", - "admin.customization.iosAppDownloadLinkDesc": "添加iOS应用下载链接。用移动设备访问的用户将看到应用下载提示页面。留空此字段将不显示。", - "admin.customization.iosAppDownloadLinkTitle": "iOS应用下载网址:", + "admin.customization.iosAppDownloadLinkDesc": "添加 iOS 应用下载链接。用移动设备访问的用户将看到应用下载提示页面。留空此字段将不显示。", + "admin.customization.iosAppDownloadLinkTitle": "iOS 应用下载 URL:", "admin.customization.maxMarkdownNodesDesc": "在移动应用中渲染 Markdown 文本时,控制可以在一段文本中包含的最大 Markdown 元素数量(例如:表情符、链接、表格单元格等)。如果设为 0,将使用默认限制。", - "admin.customization.maxMarkdownNodesTitle": "最大的Markdown节点数:", - "admin.customization.minimumDesktopAppVersionDesc": "指定连接到此服务器所需的 Mattermost 桌面应用最低版本(例如 5.10.0)。使用低于此最低版本的桌面应用连接的用户将看到需要更新的页面,在更新前将无法使用应用程序。将此字段留空以允许所有桌面应用版本不受限制地连接。", + "admin.customization.maxMarkdownNodesTitle": "最大 Markdown 节点数:", + "admin.customization.minimumDesktopAppVersionDesc": "指定连接到此服务器所需的 Mattermost 桌面应用最低版本(例如 5.10.0)。使用低于此最低版本的桌面应用连接的用户将看到需要更新的页面,在更新前将无法使用应用。将此字段留空以允许所有桌面应用版本不受限制地连接。", "admin.customization.minimumDesktopAppVersionError": "版本号无效。必须是有效的语义化版本(例如 5.0.0)。", "admin.customization.minimumDesktopAppVersionPlaceholder": "输入版本号(例如 5.0.0)", "admin.customization.minimumDesktopAppVersionTitle": "桌面应用最低版本:", "admin.customization.restrictLinkPreviewsDesc": "对于上述逗号分隔的域名列表,将不会显示链接预览和图像链接预览。", "admin.customization.restrictLinkPreviewsExample": "例如:“internal.mycompany.com, images.example.com”", "admin.customization.restrictLinkPreviewsTitle": "禁用来自以下域名的网站链接预览:", - "admin.customization.uniqueEmojiReactionLimitPerPost": "独立表情符反应限制:", + "admin.customization.uniqueEmojiReactionLimitPerPost": "表情回应数量限制:", "admin.customization.uniqueEmojiReactionLimitPerPost.maxValue": "无法将限制提高至超过 500 的值。", "admin.customization.uniqueEmojiReactionLimitPerPost.minValue": "无法将下限降低至低于 0 的值。", - "admin.customization.uniqueEmojiReactionLimitPerPostDesc": "可以被添加到每条消息的独立表情符反应数量。增加此限制会降低客户端性能。最大值为 500。", + "admin.customization.uniqueEmojiReactionLimitPerPostDesc": "每条消息可添加的表情回应数量。增加此限制会降低客户端性能。最大值为 500。", "admin.customization.uniqueEmojiReactionLimitPerPostPlaceholder": "例如:25", - "admin.dataSpillage.additionalSettings.description": "配置你希望隔离区如何运行", + "admin.dataSpillage.additionalSettings.description": "配置您希望隔离区如何运行", "admin.dataSpillage.additionalSettings.hideFlaggedPosts": "在审核期间从频道中隐藏消息", "admin.dataSpillage.additionalSettings.reasonsForFlagging": "隔离原因", "admin.dataSpillage.additionalSettings.requireReporterComment": "要求举报人添加备注", @@ -854,7 +853,7 @@ "admin.dataSpillage.reviewerSettings.additionalReviewers.systemAdmins": "系统管理员", "admin.dataSpillage.reviewerSettings.additionalReviewers.teamAdmins": "团队管理员", "admin.dataSpillage.reviewerSettings.commonReviewers": "审核者:", - "admin.dataSpillage.reviewerSettings.description": "定义在你的环境中应由谁来审核内容", + "admin.dataSpillage.reviewerSettings.description": "定义在您的环境中应由谁来审核内容", "admin.dataSpillage.reviewerSettings.disableAll": "为所有团队禁用", "admin.dataSpillage.reviewerSettings.header.enabled": "已启用", "admin.dataSpillage.reviewerSettings.header.reviewers": "审核者", @@ -943,7 +942,7 @@ "admin.elasticsearch.clientCertTitle": "客户端证书路径:", "admin.elasticsearch.clientKeyDescription": "(可选) 以PEM格式提供的用于客户端证书的密钥。", "admin.elasticsearch.clientKeyExample": "例如:“./elasticsearch/client-cert.pem”", - "admin.elasticsearch.clientKeyTitle": "客户端证书钥匙路径:", + "admin.elasticsearch.clientKeyTitle": "客户端证书密钥路径:", "admin.elasticsearch.connectionUrlDescription": "Elasticsearch 服务器地址。请参阅文档获取服务器设置说明。", "admin.elasticsearch.connectionUrlExample": "例如:“https://elasticsearch.example.org:9200”", "admin.elasticsearch.connectionUrlTitle": "服务器连接地址:", @@ -954,8 +953,8 @@ "admin.elasticsearch.enableAutocompleteTitle": "开启 Elasticsearch 自动补全查询:", "admin.elasticsearch.enableIndexingDescription": "启用后,新消息会自动建立索引。在启用“对搜索查询启用 Elasticsearch”前,搜索查询将使用数据库搜索。在我们的文档中了解更多关于 Elasticsearch 的信息。", "admin.elasticsearch.enableIndexingTitle": "开启 Elasticsearch 索引:", - "admin.elasticsearch.enableSearchPublicChannelsWithoutMembershipDescription": "启用后,用户可以搜索他们尚未加入的公开频道中的消息。首次启用时,现有消息将在后台更新。该过程会被限流以避免影响搜索性能。启用合规模式时,此设置无效。", - "admin.elasticsearch.enableSearchPublicChannelsWithoutMembershipTitle": "允许在未加入的情况下搜索公开频道:", + "admin.elasticsearch.enableSearchPublicChannelsWithoutMembershipDescription": "启用后,用户可以搜索他们尚未加入的公共频道中的消息。首次启用时,现有消息将在后台更新。该过程会被限流以避免影响搜索性能。启用合规模式时,此设置无效。", + "admin.elasticsearch.enableSearchPublicChannelsWithoutMembershipTitle": "允许在未加入的情况下搜索公共频道:", "admin.elasticsearch.enableSearchingDescription": "需要成功连接到 Elasticsearch 服务器。当设为是时,将使用 Elasticsearch 最新的索引搜索所有的查询。在批量建立现有数据的索引完成前搜索结果可能不完整。当设为否时,将使用数据库搜索。", "admin.elasticsearch.enableSearchingTitle": "开启 Elasticsearch 搜索查询:", "admin.elasticsearch.ignoredPurgeIndexes": "在清除过程中要跳过的索引:", @@ -979,6 +978,7 @@ "admin.elasticsearch.skipTLSVerificationTitle": "跳过 TLS 验证:", "admin.elasticsearch.sniffDescription": "当设为是时,自动嗅探寻找并连接您的集群里的所有数据节点。", "admin.elasticsearch.sniffTitle": "开启集群嗅探:", + "admin.elasticsearch.sniffWarning": "使用托管于云上的提供者,例如 Elastic Cloud 或 Amazon OpenSearch Service 时,不要启用集群嗅探。", "admin.elasticsearch.testConfigSuccess": "测试成功。配置已保存。", "admin.elasticsearch.testHelpText": "测试 Mattermost 是否可以连接指定的 Elasticsearch 服务器。配置只有在测试连接成功后保存。如果您在启动 Mattermost 后启动 Elasticesearch,测试成功会同时初始化客户端。但并不会重启 worker。要重启 worker,请勾选“启用 Elasticsearch 索引”。", "admin.elasticsearch.title": "Elasticsearch", @@ -989,8 +989,8 @@ "admin.email.allowEmailSignInDescription": "当设为是时,Mattermost 允许用户使用邮箱和密码登录。", "admin.email.allowEmailSignInTitle": "启用使用邮箱登录:", "admin.email.allowSignupDescription": "当设为是时,Mattermost 允许使用邮箱与密码注册账号。此值唯一设为否的情况是您想限制为使用 AD/LDAP、SAML、GitLab 等单点登录服务注册。", - "admin.email.allowSignupTitle": "启用使用邮箱创建账户:", - "admin.email.allowUsernameSignInDescription": "当设为是时,使用邮箱的用户可以使用他们的用户名和密码登录,此设定不影响 AD/LDAP 登录。", + "admin.email.allowSignupTitle": "启用使用邮箱创建账号:", + "admin.email.allowUsernameSignInDescription": "当设为是时,使用邮箱的用户可以使用他们的用户名和密码登录,此设置不影响 AD/LDAP 登录。", "admin.email.allowUsernameSignInTitle": "启用使用用户名登录:", "admin.email.easHelp": "深入了解从企业应用商店编译并部署您自己的移动应用。", "admin.email.mhpns": "使用拥有在线时间 SLA 的 TPNS 连接发送通知到 iOS 和安卓应用", @@ -1011,18 +1011,18 @@ "admin.email.requireVerificationDescription": "通常在正式环境中设为是。当设为是时,Mattermost 要求账号创建后先验证邮箱才能登录。开发者可以将此字段设为否,跳过邮箱验证以加快开发。", "admin.email.requireVerificationTitle": "需要邮箱验证: ", "admin.email.selfPush": "手动输入推送通知服务位置", - "admin.environment.fileStorage": "文件储存", + "admin.environment.fileStorage": "文件存储", "admin.environment.imageProxy": "图片代理", "admin.environment.notifications": "通知", "admin.environment.notifications.contents.full": "发送完整消息内容", "admin.environment.notifications.contents.generic": "仅使用发送人名发送一般描述", - "admin.environment.notifications.contents.help": "**发送完整的消息** - 发送者名和频道将包含在邮件里。\n**仅使用发送人名发送一般描述** - 只在推送通知里包含谁发送的消息,不包含频道名或消息内容。通常在合规需求下使用如果 Mattermost 包含保密内容并且政策不允许储存在邮件。", + "admin.environment.notifications.contents.help": "**发送完整的消息** - 发送者名和频道将包含在邮件里。\n**仅使用发送人名发送一般描述** - 只在推送通知里包含谁发送的消息,不包含频道名或消息内容。通常在合规需求下使用如果 Mattermost 包含保密内容并且政策不允许存储在邮件。", "admin.environment.notifications.contents.label": "邮件通知内容:", - "admin.environment.notifications.enable.help": "通常正式环境中设为是。当设为是时,Mattermost 将尝试发送邮件通知。当设为否时,只要配置了 SMTP 服务器,邮件邀请和用户设定发生更改的邮件仍然会被发送。开发者可以将此字段设为否,以跳过邮件设定,加快开发。", + "admin.environment.notifications.enable.help": "通常正式环境中设为是。当设为是时,Mattermost 将尝试发送邮件通知。当设为否时,只要配置了 SMTP 服务器,邮件邀请和用户设置发生更改的邮件仍然会被发送。开发者可以将此字段设为否,以跳过邮件设置,加快开发。", "admin.environment.notifications.enable.label": "启用发送邮件通知:", "admin.environment.notifications.enableConfirmNotificationsToChannel.help": "当设为是时,用户在超过五个成员的频道使用 @channel、@all、@here 以及组提及时提示确认。当设为否时,不需要确认。", "admin.environment.notifications.enableConfirmNotificationsToChannel.label": "显示 @channel、@all、@here 以及组提及的确认对话框:", - "admin.environment.notifications.enableEmailBatching.help": "当设为是时,用户的多条私信消息和提及的邮件通知将合并至一封邮件。邮件将默认每 15 分钟批量发送,可以在设定 > 通知里更改。", + "admin.environment.notifications.enableEmailBatching.help": "当设为是时,用户的多条私信消息和提及的邮件通知将合并至一封邮件。邮件将默认每 15 分钟批量发送,可以在设置 > 通知里更改。", "admin.environment.notifications.enableEmailBatching.label": "开启邮件批量发送:", "admin.environment.notifications.enablePreviewModeBanner.help": "当设为是时,将显示预览模式横幅以使用户知道邮件通知已被禁用。当设为否时,预览模式横幅将不显示。", "admin.environment.notifications.enablePreviewModeBanner.label": "开启预览模式横幅:", @@ -1038,12 +1038,12 @@ "admin.environment.notifications.notificationDisplay.placeholder": "例如:”Mattermost 通知”、”系统”、”请勿回复”", "admin.environment.notifications.notificationDisplay.required": "“通知显示名称”是必须的", "admin.environment.notifications.pushContents.full": "通知内容包含完整消息", - "admin.environment.notifications.pushContents.generic": "发送包含发送者称和频道名称的一般性描述", + "admin.environment.notifications.pushContents.generic": "发送包含发送者名称和频道名称的一般性描述", "admin.environment.notifications.pushContents.genericNoChannel": "仅使用发送人名发送一般描述", - "admin.environment.notifications.pushContents.help": "**仅使用发送人名发送一般描述** - 推送仅包含消息发送人名称,不包含频道名或消息内容。\n**发送包含发送者称和频道名称的一般性描述** - 包含消息发送人名称以及所属频道,但不包含消息内容。\n**通知内容包含完整消息** - 从苹果推送服务(APNS)或谷歌 Firebase 云消息(FCM)转发的推送里包含完整的消息内容。**强烈推荐**仅在使用 https 协议时开启此选项以保护机密消息。", + "admin.environment.notifications.pushContents.help": "**仅使用发送人名发送一般描述** - 推送仅包含消息发送人名称,不包含频道名或消息内容。\n**发送包含发送者名称和频道名称的一般性描述** - 包含消息发送人名称以及所属频道,但不包含消息内容。\n**通知内容包含完整消息** - 从苹果推送服务(APNS)或谷歌 Firebase 云消息(FCM)转发的推送里包含完整的消息内容。**强烈推荐**仅在使用 https 协议时开启此选项以保护机密消息。", "admin.environment.notifications.pushContents.idLoaded": "收到推送后从服务器获取消息内容", "admin.environment.notifications.pushContents.label": "推送通知内容:", - "admin.environment.notifications.pushContents.withIdLoaded.help": "**仅使用发送人名发送一般描述** - 推送仅包含消息发送人名称,不包含频道名或消息内容。\n**发送包含发送者称和频道名称的一般性描述** - 包含消息发送人名称以及所属频道,但不包含消息内容。\n**通知内容包含完整消息** - 从苹果推送服务(APNS)或谷歌 Firebase 云消息(FCM)转发的推送里包含完整的消息内容。**强烈推荐**仅在使用 https 协议时开启此选项以保护机密消息。\n**收到推送后从服务器获取消息内容** - 从 APNS 或 FCM 转发的推送里不包含消息内容,而是包含唯一的消息 ID 以便收到推送后从服务器获得消息内容。如果无法连接服务器,将显示一般讯息。", + "admin.environment.notifications.pushContents.withIdLoaded.help": "**仅使用发送人名发送一般描述** - 推送仅包含消息发送人名称,不包含频道名或消息内容。\n**发送包含发送者名称和频道名称的一般性描述** - 包含消息发送人名称以及所属频道,但不包含消息内容。\n**通知内容包含完整消息** - 从苹果推送服务(APNS)或谷歌 Firebase 云消息(FCM)转发的推送里包含完整的消息内容。**强烈推荐**仅在使用 https 协议时开启此选项以保护机密消息。\n**收到推送后从服务器获取消息内容** - 从 APNS 或 FCM 转发的推送里不包含消息内容,而是包含唯一的消息 ID 以便收到推送后从服务器获得消息内容。如果无法连接服务器,将显示一般消息。", "admin.environment.notifications.replyToAddress.help": "从 Mattermost 发送的通知邮件中使用的 Reply-To 邮件地址。", "admin.environment.notifications.replyToAddress.label": "通知 Reply-To 地址:", "admin.environment.notifications.replyToAddress.placeholder": "例如:“mattermost@yourcompany.com”、“admin@yourcompany.com”", @@ -1065,7 +1065,7 @@ "admin.environment.smtp.smtpAuth.description": "当设为是时,启用 SMTP 验证。", "admin.environment.smtp.smtpAuth.title": "开启 SMTP 验证:", "admin.environment.smtp.smtpFail": "连接失败:{error}", - "admin.environment.smtp.smtpFailure": "SMTP没有在在系统控制台里配置。可以在 这里配置。", + "admin.environment.smtp.smtpFailure": "未在系统控制台中配置 SMTP。可以在 这里配置。", "admin.environment.smtp.smtpPassword.description": "从邮件服务器管理员获得此凭据。", "admin.environment.smtp.smtpPassword.placeholder": "例如:”yourpassword”、”jcuS8PuvcpGhpgHhlcpT1Mx42pnqMxQY”", "admin.environment.smtp.smtpPassword.title": "SMTP 服务器密码:", @@ -1085,9 +1085,9 @@ "admin.experimental.PermittedMoveThreadRoles.title": "允许的角色", "admin.experimental.UsersStatusAndProfileFetchingPollIntervalMilliseconds.desc": "定期获取用户状态和个人资料之间等待的毫秒数。", "admin.experimental.UsersStatusAndProfileFetchingPollIntervalMilliseconds.title": "用户状态和个人资料获取轮询间隔:", - "admin.experimental.allowCustomThemes.desc": "开启设定中的**显示 > 主题 > 自定义主题**部分。", + "admin.experimental.allowCustomThemes.desc": "开启设置中的**显示 > 主题 > 自定义主题**部分。", "admin.experimental.allowCustomThemes.title": "允许自定义主题:", - "admin.experimental.allowedEmailDomain.desc": "(可选) 设定后,用户的邮箱必须以此域名结尾才能移动话题。可以使用逗号分隔以指定多个域名。", + "admin.experimental.allowedEmailDomain.desc": "(可选) 设置后,用户的邮箱必须以此域名结尾才能移动话题。可以使用逗号分隔以指定多个域名。", "admin.experimental.allowedEmailDomain.title": "允许的邮箱域名", "admin.experimental.channelCategorySorting.desc": "当启用时,频道将根据其名称使用\"/\"分隔符自动分类到类别中。", "admin.experimental.channelCategorySorting.title": "频道类别排序:", @@ -1097,7 +1097,7 @@ "admin.experimental.collapsedThreads.desc": "当设置为启用(默认关闭)时,用户可以在账号设置中自行启用话题讨论。当设置为启用(默认开启)时,用户在默认情况下会看见话题讨论,并可以在账号设置中自行关闭。当设为总是启用时,用户必须使用话题讨论并无法自行关闭。", "admin.experimental.collapsedThreads.off": "禁用", "admin.experimental.collapsedThreads.title": "话题讨论", - "admin.experimental.defaultTheme.desc": "设定新用户的默认主题。", + "admin.experimental.defaultTheme.desc": "设置新用户的默认主题。", "admin.experimental.defaultTheme.options.denim": "牛仔蓝", "admin.experimental.defaultTheme.options.indigo": "星夜蓝", "admin.experimental.defaultTheme.options.onyx": "玛瑙黑", @@ -1115,16 +1115,16 @@ "admin.experimental.emailBatchingBufferSize.desc": "指定每个邮件包含最多通知数量。", "admin.experimental.emailBatchingBufferSize.example": "例如:“256”", "admin.experimental.emailBatchingBufferSize.title": "批量邮件缓存大小:", - "admin.experimental.emailBatchingInterval.desc": "设定以秒为单位的频率用于批量任务检查新通知。大的间隔将会提高性能。", + "admin.experimental.emailBatchingInterval.desc": "设置以秒为单位的频率用于批量任务检查新通知。大的间隔将会提高性能。", "admin.experimental.emailBatchingInterval.example": "例如:“30”", "admin.experimental.emailBatchingInterval.title": "批量邮件间隔:", - "admin.experimental.emailSettingsLoginButtonBorderColor.desc": "指定邮件登录按钮的边框颜色用于白标。使用以 # 符号开头的十六进制代码。此设定只应用于移动应用。", + "admin.experimental.emailSettingsLoginButtonBorderColor.desc": "指定邮件登录按钮的边框颜色用于白标。使用以 # 符号开头的十六进制代码。此设置只应用于移动应用。", "admin.experimental.emailSettingsLoginButtonBorderColor.title": "邮件登录按钮边框颜色:", - "admin.experimental.emailSettingsLoginButtonColor.desc": "指定邮件登录按钮的颜色用于白标。使用以 # 开头的十六进制代码。此设定只应用于移动应用。", + "admin.experimental.emailSettingsLoginButtonColor.desc": "指定邮件登录按钮的颜色用于白标。使用以 # 开头的十六进制代码。此设置只应用于移动应用。", "admin.experimental.emailSettingsLoginButtonColor.title": "邮件登录按钮颜色:", - "admin.experimental.emailSettingsLoginButtonTextColor.desc": "指定邮件登录按钮的文字颜色用于白标。使用以 # 开头的十六进制代码。此设定只应用于移动应用。", + "admin.experimental.emailSettingsLoginButtonTextColor.desc": "指定邮件登录按钮的文字颜色用于白标。使用以 # 开头的十六进制代码。此设置只应用于移动应用。", "admin.experimental.emailSettingsLoginButtonTextColor.title": "邮件登录按钮文字颜色:", - "admin.experimental.enableChannelViewedMessages.desc": "此设定决定 `channel_viewed` WebSocket 事件是否发送,此事件用于同步多客户端和设备的未读通知。在大部署情况下关闭此设定将可改善服务器性能。", + "admin.experimental.enableChannelViewedMessages.desc": "此设置决定 `channel_viewed` WebSocket 事件是否发送,此事件用于同步多客户端和设备的未读通知。在大部署情况下关闭此设置将可改善服务器性能。", "admin.experimental.enableChannelViewedMessages.title": "开启频道已读 WebSocket 消息:", "admin.experimental.enableOnboardingFlow.desc": "当设为是时,向新用户显示作为入职流程的一部分要完成的步骤", "admin.experimental.enableOnboardingFlow.title": "开启入职流程:", @@ -1132,17 +1132,17 @@ "admin.experimental.enableThemeSelection.title": "开启主题选择:", "admin.experimental.enableTutorial.desc": "当设为是时,用户将在创建账号后首次登录时被提示完成教程。当设为否时,教程将被禁用,且用户在创建账号后首次登录时将进入广场。", "admin.experimental.enableTutorial.title": "开启教程:", - "admin.experimental.enableUserDeactivation.desc": "当设为是时,用户可以到**设定 > 高级**停用自己的账号。如果用户停用自己的账号,他们将会收到邮件通知以确认被停用。当设为否时,用户不能停用自己的账号。", - "admin.experimental.enableUserDeactivation.title": "开启账号注销:", + "admin.experimental.enableUserDeactivation.desc": "当设为是时,用户可以到**设置 > 高级**停用自己的账号。如果用户停用自己的账号,他们将会收到邮件通知以确认被停用。当设为否时,用户不能停用自己的账号。", + "admin.experimental.enableUserDeactivation.title": "开启账号停用:", "admin.experimental.enableUserTypingMessages.desc": "此设置决定是否在消息框下方显示“用户正在输入…”消息。在大型部署中禁用此设置可能会提高服务器性能。", "admin.experimental.enableUserTypingMessages.title": "开始用户输入中消息:", "admin.experimental.enableWatermark.desc": "为 true 时,已认证的移动端会话将显示水印叠加层,展示用户名、域名、日期(YYYY-MM-DD)和时间(HH:mm),用于数据丢失防护(DLP)。", "admin.experimental.enableWatermark.title": "启用移动端水印:", "admin.experimental.experimentalEnableAuthenticationTransfer.desc": "当设为是时,用户可以通过个人资料或 API 将他们的登录方式更改为任何服务器上已启用的方式。当设为否时,用户不能更改他们的登录方式,无论启用了哪些认证选项。", "admin.experimental.experimentalEnableAuthenticationTransfer.title": "允许认证转移:", - "admin.experimental.experimentalEnableAutomaticReplies.desc": "当设为是时,用户可以在 **设定 > 通知** 开启自动回复。用户可设定自动私信回复的自定义消息。当设为否时,将关闭自动私信消息回复功能并且从账号设定隐藏。", + "admin.experimental.experimentalEnableAutomaticReplies.desc": "当设为是时,用户可以在 **设置 > 通知** 开启自动回复。用户可设置自动私信回复的自定义消息。当设为否时,将关闭自动私信消息回复功能并且从账号设置隐藏。", "admin.experimental.experimentalEnableAutomaticReplies.title": "开启自动回复:", - "admin.experimental.experimentalEnableDefaultChannelLeaveJoinMessages.desc": "此设定决定团队离开/加入系统消息发布到默认的广场频道。", + "admin.experimental.experimentalEnableDefaultChannelLeaveJoinMessages.desc": "此设置决定团队离开/加入系统消息发布到默认的广场频道。", "admin.experimental.experimentalEnableDefaultChannelLeaveJoinMessages.title": "开启默认频道离开/加入系统消息:", "admin.experimental.experimentalEnableHardenedMode.desc": "启用 Mattermost 强化模式,将用户体验作为代价强化安全。查看文档以了解更多。", "admin.experimental.experimentalEnableHardenedMode.title": "开启强化模式:", @@ -1150,11 +1150,11 @@ "admin.experimental.experimentalPrimaryTeam.desc": "用户在此服务器上的主要团队。当设置主要团队后,加入其他团队或退出主要团队选项将停用。", "admin.experimental.experimentalPrimaryTeam.example": "例如:“teamname”", "admin.experimental.experimentalPrimaryTeam.title": "首要团队:", - "admin.experimental.ldapSettingsLoginButtonBorderColor.desc": "指定 AD/LDAP 登录按钮的边框颜色用于白标。使用以 # 开头的十六进制代码。此设定只应用于移动应用。", + "admin.experimental.ldapSettingsLoginButtonBorderColor.desc": "指定 AD/LDAP 登录按钮的边框颜色用于白标。使用以 # 开头的十六进制代码。此设置只应用于移动应用。", "admin.experimental.ldapSettingsLoginButtonBorderColor.title": "AD/LDAP 登录按钮边框颜色:", - "admin.experimental.ldapSettingsLoginButtonColor.desc": "指定 AD/LDAP 登录按钮的颜色用于白标。使用以 # 开头的十六进制代码。此设定只应用于移动应用。", + "admin.experimental.ldapSettingsLoginButtonColor.desc": "指定 AD/LDAP 登录按钮的颜色用于白标。使用以 # 开头的十六进制代码。此设置只应用于移动应用。", "admin.experimental.ldapSettingsLoginButtonColor.title": "AD/LDAP 登录按钮颜色:", - "admin.experimental.ldapSettingsLoginButtonTextColor.desc": "指定 AD/LDAP 登录按钮的文字颜色用于白标。使用以 # 开头的十六进制代码。此设定只应用于移动应用。", + "admin.experimental.ldapSettingsLoginButtonTextColor.desc": "指定 AD/LDAP 登录按钮的文字颜色用于白标。使用以 # 开头的十六进制代码。此设置只应用于移动应用。", "admin.experimental.ldapSettingsLoginButtonTextColor.title": "AD/LDAP 登录按钮文字颜色:", "admin.experimental.linkMetadataTimeoutMilliseconds.desc": "等待从第三方连接获取元数据的毫秒数。使用于消息元数据。", "admin.experimental.linkMetadataTimeoutMilliseconds.example": "例如:“5000”", @@ -1169,11 +1169,11 @@ "admin.experimental.moveThreadMaxCount.title": "最大话题数移动大小", "admin.experimental.moveThreadToAnotherTeamEnable.desc": "控制移动话题是否允许将消息话题移动至另一团队。", "admin.experimental.moveThreadToAnotherTeamEnable.title": "启用移动话题至其他团队", - "admin.experimental.samlSettingsLoginButtonBorderColor.desc": "指定 SAML 登录按钮的边框颜色用于白标。使用以 # 开头的十六进制代码。此设定只应用于移动应用。", + "admin.experimental.samlSettingsLoginButtonBorderColor.desc": "指定 SAML 登录按钮的边框颜色用于白标。使用以 # 开头的十六进制代码。此设置只应用于移动应用。", "admin.experimental.samlSettingsLoginButtonBorderColor.title": "SAML 登录按钮边框颜色:", - "admin.experimental.samlSettingsLoginButtonColor.desc": "指定 SAML 登录按钮的颜色用于白标。使用以 # 开头的十六进制代码。此设定只应用于移动应用。", + "admin.experimental.samlSettingsLoginButtonColor.desc": "指定 SAML 登录按钮的颜色用于白标。使用以 # 开头的十六进制代码。此设置只应用于移动应用。", "admin.experimental.samlSettingsLoginButtonColor.title": "SAML 登录按钮颜色:", - "admin.experimental.samlSettingsLoginButtonTextColor.desc": "指定 SAML 登录按钮的文字颜色用于白标。使用以 # 开头的十六进制代码。此设定只应用于移动应用。", + "admin.experimental.samlSettingsLoginButtonTextColor.desc": "指定 SAML 登录按钮的文字颜色用于白标。使用以 # 开头的十六进制代码。此设置只应用于移动应用。", "admin.experimental.samlSettingsLoginButtonTextColor.title": "SAML 登录按钮文本颜色:", "admin.experimental.threadAutoFollow.desc": "必须启用此设置才能启用话题讨论功能。当启用时,用户开始、参与或被提及的话题将自动被关注。一个新的“Threads”表将会添加到数据库中,用于跟踪话题与话题参与者,而“ThreadMembership”表则跟踪每个用户关注的话题以及每个已关注话题的已读或未读状态。当设为否时,所有支持话题讨论的后端操作都将被禁用。", "admin.experimental.threadAutoFollow.title": "自动关注话题", @@ -1196,7 +1196,7 @@ "admin.featureDiscovery.WarningTitle": "您的试用已经开始,正在对您的许可证进行更新。", "admin.feature_discovery.contact_sales": "联系销售", "admin.feature_discovery.learn_more": "了解更多", - "admin.feature_discovery.trial-request.accept-terms": "点击开始试用,表示我同意 Mattermost 软件评估协议隐私政策,并愿意接收产品相关的电子邮件。", + "admin.feature_discovery.trial-request.accept-terms": "点击开始试用,表示我同意 Mattermost 软件评估协议隐私政策,并愿意接收产品相关的邮件。", "admin.feature_discovery.trial-request.error": "无法获取试用许可证。请访问{trialInfoLink}申请许可证。", "admin.feature_flags.flag": "标记", "admin.feature_flags.flag_value": "值", @@ -1215,7 +1215,7 @@ "admin.filter.filters": "过滤器", "admin.filter.reset": "重置过滤器", "admin.filter.title": "过滤", - "admin.general.localization.availableLocalesDescription": "设置用户在设定 > 显示 > 语言中可用的语言(留空即所有支持的语言均可用)。如果您手动添加新语言,必须在保存此设置前先添加默认客户端语言。\n \n想要帮忙翻译吗?加入 Mattermost 翻译服务器来贡献。", + "admin.general.localization.availableLocalesDescription": "设置用户在设置 > 显示 > 语言中可用的语言(留空即所有支持的语言均可用)。如果您手动添加新语言,必须在保存此设置前先添加默认客户端语言。\n \n想要帮忙翻译吗?加入 Mattermost 翻译服务器来贡献。", "admin.general.localization.availableLocalesNoResults": "未找到结果", "admin.general.localization.availableLocalesTitle": "可用的语言:", "admin.general.localization.clientLocaleDescription": "新创建的用户以及未登录的用户的默认语言。", @@ -1225,23 +1225,23 @@ "admin.general.localization.serverLocaleDescription": "系统消息和日志的默认语言。", "admin.general.localization.serverLocaleTitle": "默认服务器语言:", "admin.general.log": "日志", - "admin.gitlab.EnableMarkdownDesc": "1. 登录你的 GitLab 账号,进入 个人设置 -> 应用(Profile Settings -> Applications)。\n2. 输入重定向 URI:“your-mattermost-url”(例如:http://localhost:8065/login/gitlab/complete) 和 “your-mattermost-url”。\n3. 然后使用 GitLab 中的 “应用密钥(Application Secret Key)” 和 “应用 ID(Application ID)” 来填写下方选项。\n4. 完善下方的端点 URL。", + "admin.gitlab.EnableMarkdownDesc": "1. 登录您的 GitLab 账号,进入 个人设置 -> 应用(Profile Settings -> Applications)。\n2. 输入重定向 URI:“your-mattermost-url”(例如:http://localhost:8065/login/gitlab/complete) 和 “your-mattermost-url”。\n3. 然后使用 GitLab 中的 “应用密钥(Application Secret Key)” 和 “应用 ID(Application ID)” 来填写下方选项。\n4. 完善下方的端点 URL。", "admin.gitlab.authTitle": "认证端点:", "admin.gitlab.clientIdDescription": "通过上述指令登录 GitLab 获取该值。", "admin.gitlab.clientIdExample": "例如:“jcuS8PuvcpGhpgHhlcpT1Mx42pnqMxQY”", - "admin.gitlab.clientIdTitle": "应用程序 ID:", + "admin.gitlab.clientIdTitle": "应用 ID:", "admin.gitlab.clientSecretDescription": "通过上述指令登录 GitLab 获取该值。", "admin.gitlab.clientSecretExample": "例如:“jcuS8PuvcpGhpgHhlcpT1Mx42pnqMxQY”", - "admin.gitlab.clientSecretTitle": "应用程序密钥:", - "admin.gitlab.discoveryEndpointDesc": "OpenID 与 GitLab 的发现文档的连接网址。", + "admin.gitlab.clientSecretTitle": "应用密钥:", + "admin.gitlab.discoveryEndpointDesc": "OpenID 与 GitLab 的发现文档的连接 URL。", "admin.gitlab.siteUrl": "GitLab 站点 URL:", - "admin.gitlab.siteUrlDescription": "输入您的 GitLab 网址,例如 https://example.com:3000。如果您的 GitLab 未使用 SSL,使用 http:// 为网址开头。", + "admin.gitlab.siteUrlDescription": "输入您的 GitLab URL,例如 https://example.com:3000。如果您的 GitLab 未使用 SSL,使用 http:// 为 URL 开头。", "admin.gitlab.siteUrlExample": "例如:https://", "admin.gitlab.tokenTitle": "令牌端点:", - "admin.gitlab.userTitle": "用户API 端点:", - "admin.gitlab_feature_discovery.copy": "当你将 GitLab 作为单点登录提供商连接时,团队成员无需重新输入 GitLab 凭据即可访问 Mattermost。仅适用于 Mattermost Professional 及以上版本。", + "admin.gitlab.userTitle": "用户 API 端点:", + "admin.gitlab_feature_discovery.copy": "当您将 GitLab 作为单点登录提供商连接时,团队成员无需重新输入 GitLab 凭据即可访问 Mattermost。仅适用于 Mattermost Professional 及以上版本。", "admin.gitlab_feature_discovery.title": "在 Mattermost Professional 中通过 OpenID Connect 集成 GitLab 单点登录(SSO)", - "admin.google.EnableMarkdownDesc": "1. 登录你的 Google 账户。\n2. 进入https://console.developers.google.com,点击左侧的凭据(Credentials)。\n3. 在凭据标题下,点击创建凭据(Create credentials),选择OAuth 客户端 ID(OAuth client ID),然后选择Web 应用(Web Application)。\n4. 在名称(Name)处输入 \"Mattermost - your-company-name\"。\n5. 在已授权重定向 URI(Authorized redirect URIs)下输入 \"your-mattermost-url/signup/google/complete\"(例如:http://localhost:8065/signup/google/complete),然后点击创建(Create)。\n6. 将客户端 ID(Client ID)客户端密钥(Client Secret)粘贴到下方字段中,点击保存(Save)。\n7. 前往Google People API,点击启用(Enable)。", + "admin.google.EnableMarkdownDesc": "1. 登录您的 Google 账号。\n2. 进入https://console.developers.google.com,点击左侧的凭据(Credentials)。\n3. 在凭据标题下,点击创建凭据(Create credentials),选择OAuth 客户端 ID(OAuth client ID),然后选择Web 应用(Web Application)。\n4. 在名称(Name)处输入 \"Mattermost - your-company-name\"。\n5. 在已授权重定向 URI(Authorized redirect URIs)下输入 \"your-mattermost-url/signup/google/complete\"(例如:http://localhost:8065/signup/google/complete),然后点击创建(Create)。\n6. 将客户端 ID(Client ID)客户端密钥(Client Secret)粘贴到下方字段中,点击保存(Save)。\n7. 前往Google People API,点击启用(Enable)。", "admin.google.authTitle": "认证端点:", "admin.google.clientIdDescription": "您在 Google 注册您的应用时收到的 Client ID。", "admin.google.clientIdExample": "例如:“7602141235235-url0fhs1mayfasbmop5qlfns8dh4.apps.googleusercontent.com”", @@ -1249,7 +1249,7 @@ "admin.google.clientSecretDescription": "您在 Google 注册您的应用时收到的 Client Secret。", "admin.google.clientSecretExample": "例如:“H8sz0Az-dDs2p15-7QzD231”", "admin.google.clientSecretTitle": "Client Secret:", - "admin.google.discoveryEndpointDesc": "OpenID 与谷歌的发现文档的连接网址。", + "admin.google.discoveryEndpointDesc": "OpenID 与谷歌的发现文档的连接 URL。", "admin.google.tokenTitle": "令牌端点:", "admin.google.userTitle": "用户 API 端点:", "admin.group_settings.filters.isConfigured": "已配置", @@ -1259,7 +1259,7 @@ "admin.group_settings.group_detail.duplicateMentionNameError": "群组提及已使用。", "admin.group_settings.group_detail.groupProfileDescription": "群组名称。", "admin.group_settings.group_detail.groupProfileTitle": "群组资料", - "admin.group_settings.group_detail.groupTeamsAndChannelsDescription": "设置组成员默认的团队及频道。添加的团队将包括默认频道、广场、以及杂谈。不设定团队时添加频道将添加以下列表的团队。", + "admin.group_settings.group_detail.groupTeamsAndChannelsDescription": "设置组成员默认的团队及频道。添加的团队将包括默认频道、广场、以及杂谈。不设置团队时添加频道将添加以下列表的团队。", "admin.group_settings.group_detail.groupTeamsAndChannelsTitle": "团队及频道成员", "admin.group_settings.group_detail.groupUsersDescription": "Mattermost 中关联此群组的用户列表。", "admin.group_settings.group_detail.groupUsersTitle": "用户", @@ -1318,12 +1318,12 @@ "admin.guest_access.disableConfirmMessage": "禁用访客访问将撤销所有访客账号会话。访客将无法登录且新的访客无法被邀请至 Mattermost。访客用户将会在用户列表里标记为停用。开启此功能不会恢复之前的访客账号。您确定要移除这些用户吗?", "admin.guest_access.disableConfirmTitle": "保存并停用访客访问?", "admin.guest_access.disableConfirmWarning": "所有当前访客会话将被撤销并标为停用", - "admin.guest_access.disableMagicLinkConfirmButton": "保存并禁用宾客魔法链接访问", - "admin.guest_access.disableMagicLinkConfirmMessage": "禁用宾客魔法链接访问将撤销当前所有宾客魔法链接账户会话。这些账户将无法再登录,新宾客账户也无法以免密方式受邀加入 Mattermost。这些账户将在用户列表中被标记为非活跃。启用此功能不会恢复先前的宾客魔法链接账户。您确定要删除这些用户吗?", - "admin.guest_access.disableMagicLinkConfirmTitle": "保存并禁用宾客魔法链接访问?", - "admin.guest_access.disableMagicLinkConfirmWarning": "所有当前宾客魔法链接账户会话将被撤销,并标记为非活跃状态", - "admin.guest_access.enableGuestMagicLinkDescription": "当为 true 时,受邀宾客可以通过发送到其电子邮件地址的魔法邀请链接登录。该魔法链接允许他们无需设置密码即可登录。后续登录也将通过发送至邮箱的魔法链接完成。", - "admin.guest_access.enableGuestMagicLinkTitle": "允许宾客通过电子邮件魔法链接启用免密认证: ", + "admin.guest_access.disableMagicLinkConfirmButton": "保存并禁用访客登录链接访问", + "admin.guest_access.disableMagicLinkConfirmMessage": "禁用访客登录链接访问将撤销当前所有访客登录链接账号会话。这些账号将无法再登录,新访客账号也无法以免密方式受邀加入 Mattermost。这些账号将在用户列表中被标记为非活跃。启用此功能不会恢复先前的访客登录链接账号。您确定要删除这些用户吗?", + "admin.guest_access.disableMagicLinkConfirmTitle": "保存并禁用访客登录链接访问?", + "admin.guest_access.disableMagicLinkConfirmWarning": "所有当前访客登录链接账号会话将被撤销,并标记为非活跃状态", + "admin.guest_access.enableGuestMagicLinkDescription": "当为 true 时,受邀访客可以通过发送到其邮箱地址的魔法邀请链接登录。该登录链接允许他们无需设置密码即可登录。后续登录也将通过发送至邮箱的登录链接完成。", + "admin.guest_access.enableGuestMagicLinkTitle": "允许访客通过邮件登录链接启用免密认证: ", "admin.guest_access.enableTitle": "开启访客访问: ", "admin.guest_access.helpText": "当设为是时,外部访客可以被邀请进入团队内的频道。请查看权限方案以了解哪些角色可以邀请访客。", "admin.guest_access.hideTags": "隐藏访客标签", @@ -1377,15 +1377,15 @@ "admin.image.localDescription": "存储文件和图像的目录。如果为空则默认为 ./data/。", "admin.image.localExample": "例如:“./data/”", "admin.image.localTitle": "本地存储目录:", - "admin.image.maxFileSizeDescription": "最大允许的消息附件大小(MB)。注意:请确认服务器内存能够承受您的设定。过大的文件大小会增加服务器崩溃和因网络问题而上传失败的风险。", + "admin.image.maxFileSizeDescription": "最大允许的消息附件大小(MB)。注意:请确认服务器内存能够承受您的设置。过大的文件大小会增加服务器崩溃和因网络问题而上传失败的风险。", "admin.image.maxFileSizeExample": "50", "admin.image.maxFileSizeTitle": "最大文件大小:", "admin.image.proxyOptions": "远程图片代理选项:", - "admin.image.proxyOptionsDescription": "额外选项,如签名密钥网址。参考您的图片代理文档以了解更多支持的选项。", + "admin.image.proxyOptionsDescription": "额外选项,如签名密钥 URL。参考您的图片代理文档以了解更多支持的选项。", "admin.image.proxyType": "图片代理类型:", "admin.image.proxyTypeDescription": "设置一个图片代理服务器用于加载 Markdown 图片。图片代理能防止用户发起不安全的图片请求并提供能提高性能的缓存与自动图片调整如改变大小。查看文档以了解更多。", - "admin.image.proxyURL": "远程图片代理网址:", - "admin.image.proxyURLDescription": "您的图片代理服务器网址。", + "admin.image.proxyURL": "远程图片代理 URL:", + "admin.image.proxyURLDescription": "您的图片代理服务器 URL。", "admin.image.publicLinkDescription": "用于为公开链接签名的 32 位盐值。在安装时随机生成。选择“重新生成”以创建新的盐值。", "admin.image.publicLinkTitle": "公开链接盐值:", "admin.image.shareDescription": "允许用户分享文件和图片的公开链接。", @@ -1400,16 +1400,16 @@ "admin.integrations.cors": "CORS", "admin.integrations.embedding": "内嵌", "admin.integrations.gif": "GIF", - "admin.integrations.integrationManagement": "整合管理", - "admin.integrations.integrationManagement.title": "整合管理", - "admin.intune.authServiceDescription": "选择用户如何在 Mattermost 中进行身份验证。\n* **OpenID Connect** —— 当用户通过 OIDC 使用 Microsoft 365 / Entra ID 登录 Mattermost 时选择此项。\n* **SAML 2.0** —— 当用户通过最终映射到 Microsoft Entra ID 的 SAML 提供方进行身份验证时选择此项。 \n请选择与你的组织在其他客户端上对 Mattermost 用户认证方式相匹配的选项。", + "admin.integrations.integrationManagement": "集成管理", + "admin.integrations.integrationManagement.title": "集成管理", + "admin.intune.authServiceDescription": "选择用户如何在 Mattermost 中进行身份验证。\n* **OpenID Connect** —— 当用户通过 OIDC 使用 Microsoft 365 / Entra ID 登录 Mattermost 时选择此项。\n* **SAML 2.0** —— 当用户通过最终映射到 Microsoft Entra ID 的 SAML 提供方进行身份验证时选择此项。 \n请选择与您的组织在其他客户端上对 Mattermost 用户认证方式相匹配的选项。", "admin.intune.authServiceOffice365": "OpenID Connect(Office 365)", "admin.intune.authServicePlaceholder": "选择一个认证提供者", "admin.intune.authServiceSaml": "SAML 2.0", "admin.intune.authServiceTitle": "认证提供者:", - "admin.intune.clientIdDescription": "您的 Intune MAM 已启用的应用在 Microsoft Entra ID 中的应用程序(客户端)ID。 \n这是 Mattermost 移动应用用于请求 MSAL 令牌以进行 Intune MAM 注册与策略评估的客户端标识符。", + "admin.intune.clientIdDescription": "您的 Intune MAM 已启用的应用在 Microsoft Entra ID 中的应用(客户端)ID。 \n这是 Mattermost 移动应用用于请求 MSAL 令牌以进行 Intune MAM 注册与策略评估的客户端标识符。", "admin.intune.clientIdPlaceholder": "例如:“87654321-4321-4321-4321-210987654321”", - "admin.intune.clientIdTitle": "应用程序(客户端)ID:", + "admin.intune.clientIdTitle": "应用(客户端)ID:", "admin.intune.enableDescription": "启用后,Mattermost 移动端将使用 Microsoft Entra ID(Azure AD)进行应用认证和策略强制执行。用户通过 MSAL 令牌进行认证,并应用 Intune MAM 策略(应用保护策略)以保护企业数据。", "admin.intune.enableTitle": "启用 Microsoft Intune MAM:", "admin.intune.tenantIdDescription": "Microsoft Entra ID(Azure AD)租户 ID(也称为目录 ID)。\n这是代表您组织在 Microsoft Entra ID 中的全局唯一标识符。\nMattermost 使用此 ID 验证为 Intune MAM 签发的令牌。", @@ -1507,7 +1507,7 @@ "admin.ldap.enableAdminFilterTitle": "启用管理员筛选器:", "admin.ldap.enableDesc": "当设为是时,Mattermost 允许使用 AD/LDAP 登录", "admin.ldap.enableSyncDesc": "当设为是时,Mattermost 定时从 AD/LDAP 同步用户。当设为否时,用户属性将只在用户登录时从 AD/LDAP 更新。", - "admin.ldap.enableSyncTitle": "开启于AD/LDAP 同步:", + "admin.ldap.enableSyncTitle": "开启于 AD/LDAP 同步:", "admin.ldap.enableTitle": "启用 AD/LDAP 登录:", "admin.ldap.filterTestFailed": "筛选器测试失败{showTestValue, select, true {。使用的值:{testValue}} other {}}{showError, select, true {:{error}} other {}}", "admin.ldap.filterTestSuccess": "筛选测试成功:找到 {countReturned, number} 个{countReturned, plural, one {结果} other {结果}}{showTestValue, select, true {. 使用的值:{testValue}} other {}}", @@ -1539,7 +1539,7 @@ "admin.ldap.idAttrEx": "例如:“objectGUID”或者“uid”", "admin.ldap.idAttrTitle": "ID 属性: ", "admin.ldap.jobExtraInfo.addedGroupMembers": "已删除 {groupMemberAddCount, number} 位组成员。", - "admin.ldap.jobExtraInfo.deactivatedUsers": "已注销 {deleteCount, number} 位用户。", + "admin.ldap.jobExtraInfo.deactivatedUsers": "已停用 {deleteCount, number} 位用户。", "admin.ldap.jobExtraInfo.deletedGroupMembers": "已删除 {groupMemberDeleteCount, number} 位组成员。", "admin.ldap.jobExtraInfo.deletedGroups": "已删除 {groupDeleteCount, number} 个组。", "admin.ldap.jobExtraInfo.updatedUsers": "已更新 {updateCount, number} 位用户。", @@ -1690,8 +1690,8 @@ "admin.license.singleChannelGuests.limitReached.tooltip.hint": "单频道访客数量不得超过已许可席位总数", "admin.license.singleChannelGuests.limitReached.tooltip.title": "单频道访客已达上限", "admin.license.title": "版本和许可证", - "admin.license.trial-request.accept-terms": "点击开始试用,表示我同意 Mattermost 软件和服务许可协议隐私政策,并愿意接收产品相关的电子邮件。", - "admin.license.trial-request.embargoed": "由于对禁运国家的限制,我们无法处理该请求。请在我们的文档中了解更多,或发送电子邮件至 legal@mattermost.com 了解出口限制的问题。", + "admin.license.trial-request.accept-terms": "点击开始试用,表示我同意 Mattermost 软件和服务许可协议隐私政策,并愿意接收产品相关的邮件。", + "admin.license.trial-request.embargoed": "由于对禁运国家的限制,我们无法处理该请求。请在我们的文档中了解更多,或发送邮件至 legal@mattermost.com 了解出口限制的问题。", "admin.license.trial-request.embargoed.button": "关闭", "admin.license.trial-request.startTrial": "开始试用", "admin.license.trial-request.title": "在接下来的 30 天的免费试用中,体验 Mattermost 企业高级版提供的所有功能。无需购买,无需提供信用卡信息。 ", @@ -1701,7 +1701,7 @@ "admin.license.trialLicenseCard.expiringToday": "您的免费试用将在今天 {time} 到期。联系销售购买许可证以在试用结束后继续使用高级功能。", "admin.license.trialUpgradeAndRequest.submit": "升级服务器并开始试用", "admin.license.upgrade-and-trial-request.accept-terms-final-part": "此外,我同意 Mattermost {eeModalTerms} 条款。升级将下载二进制文件并更新您的团队版实例。", - "admin.license.upgrade-and-trial-request.accept-terms-initial-part": "通过选择升级服务器并开始试用,即表示我同意 Mattermost 软件评估协议隐私政策,并愿意接收产品相关的电子邮件。 ", + "admin.license.upgrade-and-trial-request.accept-terms-initial-part": "通过选择升级服务器并开始试用,即表示我同意 Mattermost 软件评估协议隐私政策,并愿意接收产品相关的邮件。 ", "admin.license.upgrade-and-trial-request.title": "升级至企业版以解锁 Mattermost 企业高级版的 30 天试用。无需购买,无需提供信用卡信息。 ", "admin.license.upgradeAdvantage.adLdapSync": "AD/LDAP 组同步", "admin.license.upgradeAdvantage.advancedCompliance": "高级合规", @@ -1735,7 +1735,7 @@ "admin.licenseSettings.teamEdition.teamEditionRightPanel.restarting": "重启中", "admin.licenseSettings.teamEdition.teamEditionRightPanel.upgradedRestart": "您已将您的二进制升级至 mattermost 企业版,请重启服务器以开始使用新的二进制。您可以在此处进行:", "admin.lockTeammateNameDisplay": "锁定所有用户的名称显示: ", - "admin.lockTeammateNameDisplayHelpText": "当设为是时,用户无法更改在设定 > 显示 > 团队成员名显示下的设定。", + "admin.lockTeammateNameDisplayHelpText": "当设为是时,用户无法更改在设置 > 显示 > 团队成员名显示下的设置。", "admin.log.AdvancedAuditLoggingJSONDescription": "高级审计日志的 JSON 配置。请参阅文档以了解更多关于高级日志记录及其使用的 JSON 格式的信息。", "admin.log.AdvancedLoggingJSONDescription": "高级日志的 JSON 配置。请查看文档以了解高级日志与其使用的 JSON 格式。", "admin.log.AdvancedLoggingJSONPlaceholder": "输入您的 JSON 配置", @@ -1747,20 +1747,20 @@ "admin.log.enableDiagnostics": "开启诊断和错误报告:", "admin.log.enableDiagnosticsDescription": "开启此功能将发送错误报告和诊断信息到 Mattermost, Inc 以帮助提高 Mattermost 的质量和性能。阅读我们的隐私政策以了解更多。", "admin.log.enableWebhookDebugging": "启用 Webhook 调试:", - "admin.log.enableWebhookDebuggingDescription": "当设为是时,发送 webhook 调式消息至服务器日志。如想同时输出传入 webhook 请求内容,设定 {boldedLogLevel} 至 'DEBUG'。", + "admin.log.enableWebhookDebuggingDescription": "当设为是时,发送 Webhook 调试消息至服务器日志。如果想同时输出传入 Webhook 请求内容,请将 {boldedLogLevel} 设置为 “DEBUG”。", "admin.log.fileDescription": "通常在正式环境设为是。当设为是时,事件日志将写入到文件日志目录字段指定的目录下的 mattermost.log 文件。日志将在 100 MB 行后归档到同一目录下的一个文件并以时间和序列号为命名。例如:mattermost.2017-03-31.001。", "admin.log.fileJsonTitle": "以 JSON 输出文件日志:", "admin.log.fileLevelDescription": "此设置确定将日志事件写入日志文件的详细程度。 错误:仅输出错误消息。 信息:输出有关启动和初始化的错误消息和信息。 调试:为调试问题的开发人员输出大量细节。", "admin.log.fileLevelTitle": "文件日志级别:", "admin.log.fileTitle": "输出日志到文件: ", - "admin.log.jsonDescription": "当设为是时,记录的事件将以电脑可读的 JSON 格式写入。否则它们将使用纯文本。更改此设定需要重启服务器。", + "admin.log.jsonDescription": "当设为是时,记录的事件将以电脑可读的 JSON 格式写入。否则它们将使用纯文本。更改此设置需要重启服务器。", "admin.log.levelDescription": "此设置确定将日志事件写入控制台的详细程度。 ERROR:仅输出错误消息。 INFO:输出有关启动和初始化的错误消息和信息。 DEBUG:为处理调试问题的开发人员输出高细节。", "admin.log.levelOptions.DEBUG": "调试", "admin.log.levelOptions.ERROR": "错误", "admin.log.levelOptions.INFO": "信息", "admin.log.levelOptions.WARN": "警告", "admin.log.levelTitle": "控制台日志级别:", - "admin.log.locationDescription": "日志文件的路径。如果留空,它们将会储存到 ./logs 目录。您设定的路径必须存在并且 Mattermost 拥有写入权限。更改此设定需要重启服务器。", + "admin.log.locationDescription": "日志文件的路径。如果留空,它们将会存储到 ./logs 目录。您设置的路径必须存在并且 Mattermost 拥有写入权限。更改此设置需要重启服务器。", "admin.log.locationPlaceholder": "输入您的文件位置", "admin.log.locationTitle": "日志文件目录:", "admin.log.logLevel": "日志等级", @@ -1786,7 +1786,7 @@ "admin.manage_roles.additionalRoles_warning": "注意:无论使用会话 cookie 还是个人访问令牌进行验证,上方授予的权限都应用于整个账号。例如,选择 post:all 将允许该账号向其未加入的频道发送消息,甚至无需使用个人访问令牌。", "admin.manage_roles.allowUserAccessTokens": "允许此账号生成个人访问令牌。", "admin.manage_roles.allowUserAccessTokensDesc": "删除权限不会删除现有令牌。请到用户的管理令牌菜单删除它们。", - "admin.manage_roles.botAdditionalRoles": "为该账户选择附加权限。阅读有关角色和权限的更多信息。", + "admin.manage_roles.botAdditionalRoles": "为该账号选择附加权限。阅读有关角色和权限的更多信息。", "admin.manage_roles.cancel": "取消", "admin.manage_roles.manageRolesTitle": "管理身份", "admin.manage_roles.postAllPublicRole": "允许发送消息到所有 Mattermost 公共频道。", @@ -1855,11 +1855,11 @@ "admin.oauth.openid": "OpenID 连接(其他)", "admin.oauth.providerDescription": "当设为是时,Mattermost 可以作为 OAuth 2.0 服务提供者,允许 Mattermost 给外部应用 API 请求授权。查看文档以了解更多。", "admin.oauth.providerTitle": "启动 OAuth 2.0 服务提供商: ", - "admin.office365.EnableMarkdownDesc": "1. 登录您的 Microsoft 账户。\n2. 在 Microsoft 中,前往左侧栏的应用程序应用注册。\n3. 选择新注册,并在应用名称中输入 \"Mattermost - your-company-name\"。\n4. 在重定向 URI下,选择Web,并将 \"your-mattermost-url/signup/office365/complete\" 填写为重定向 URI。点击注册。\n5. 复制 Microsoft 的应用程序(客户端)ID数值,并在下方粘贴为客户端 ID数值。\n6. 复制 Microsoft 的目录(租户)ID数值,并在下方粘贴为目录(租户)ID数值。\n7. 在 Microsoft 中创建一个新的客户端机密。复制生成的客户端机密值,并在下方粘贴为客户端机密数值。点击保存。", + "admin.office365.EnableMarkdownDesc": "1. 登录您的 Microsoft 账号。\n2. 在 Microsoft 中,前往左侧栏的应用应用注册。\n3. 选择新注册,并在应用名称中输入 \"Mattermost - your-company-name\"。\n4. 在重定向 URI下,选择Web,并将 \"your-mattermost-url/signup/office365/complete\" 填写为重定向 URI。点击注册。\n5. 复制 Microsoft 的应用(客户端)ID数值,并在下方粘贴为客户端 ID数值。\n6. 复制 Microsoft 的目录(租户)ID数值,并在下方粘贴为目录(租户)ID数值。\n7. 在 Microsoft 中创建一个新的客户端机密。复制生成的客户端机密值,并在下方粘贴为客户端机密数值。点击保存。", "admin.office365.authTitle": "认证端点:", "admin.office365.clientIdDescription": "您在 Microsoft 注册您的应用时收到的 Application/Client ID。", "admin.office365.clientIdExample": "例如:“adf3sfa2-ag3f-sn4n-ids0-sh1hdax192qq”", - "admin.office365.clientIdTitle": "应用程序 ID:", + "admin.office365.clientIdTitle": "应用 ID:", "admin.office365.clientSecretDescription": "您在微软注册您的应用时收到的应用密码。", "admin.office365.clientSecretExample": "例如:“shAieM47sNBfgl20f8ci294”", "admin.office365.clientSecretTitle": "应用密码:", @@ -1868,11 +1868,11 @@ "admin.office365.directoryIdTitle": "目录(租户)ID:", "admin.office365.discoveryEndpointDesc": "OpenID Connect 与 Entra ID 的发现文档的 URL。", "admin.office365.tokenTitle": "令牌端点:", - "admin.office365.userTitle": "用户API 端点:", + "admin.office365.userTitle": "用户 API 端点:", "admin.openIdConvert.help": "了解更多", "admin.openIdConvert.message": "转换您的 OAuth 2.0 配置到新的 OpenID 连接标准。", "admin.openIdConvert.text": "转换到 OpenID 连接", - "admin.openid.EnableMarkdownDesc": "请遵循提供商的说明来创建 OpenID 应用程序。大多数 OpenID 连接提供商都要求对所有重定向网址进行授权。在适当的字段中,输入“您的-mattermost-url/signup/openid/complete”(例如:http://domain.com/signup/openid/complete)", + "admin.openid.EnableMarkdownDesc": "请遵循提供商的说明来创建 OpenID 应用。大多数 OpenID 连接提供商都要求对所有重定向 URL 进行授权。在适当的字段中,输入“您的-mattermost-url/signup/openid/complete”(例如:http://domain.com/signup/openid/complete)", "admin.openid.buttonColorDesc": "指定 OpenID 登录按钮的颜色用于白标。使用以 # 开头的十六进制代码。", "admin.openid.buttonColorTitle": "按钮颜色:", "admin.openid.buttonTextDesc": "登录按钮上显示的文字。", @@ -1885,7 +1885,7 @@ "admin.openid.clientSecretExample": "例如:\"H8sz0Az-dDs2p15-7QzD231\"", "admin.openid.clientSecretTitle": "Client Secret:", "admin.openid.discovery.placeholder": "https://id.mydomain.com/.well-known/openid-configuration", - "admin.openid.discoveryEndpointDesc": "输入您要连接的 OpenID 连接提供商的发现文档的网址。", + "admin.openid.discoveryEndpointDesc": "输入您要连接的 OpenID 连接提供商的发现文档的 URL。", "admin.openid.discoveryEndpointTitle": "发现端点:", "admin.openid.gitlab": "GitLab", "admin.openid.google": "Google Apps", @@ -1898,7 +1898,7 @@ "admin.openid_custom_feature_discovery.title": "使用 Mattermost 专业版集成 OpenID Connect", "admin.openid_feature_discovery.copy": "使用 OpenID Connect 对支持 OIDC 规范的任何服务(例如 Google、Entra ID、Apple、Okta、OneLogin 等)进行身份验证和单点登录(SSO)。", "admin.openid_feature_discovery.title": "使用 Mattermost 专业版集成 OpenID Connect", - "admin.password.enableForgotLink.description": "当设为是时,“忘记密码”链接会出现在 Mattermost 登录页面,允许用户重置密码。当禁用时,该链接对用户隐藏。该链接可在网站配置 > 自定义中设置,重定向到您选择的 URL上", + "admin.password.enableForgotLink.description": "当设为是时,“忘记密码”链接会出现在 Mattermost 登录页面,允许用户重置密码。当禁用时,该链接对用户隐藏。该链接可在网站配置 > 自定义中设置,重定向到您选择的 URL 上", "admin.password.enableForgotLink.title": "启用忘记密码链接:", "admin.password.lowercase": "至少有一个小写字母", "admin.password.minimumLength": "最小密码长度:", @@ -1932,7 +1932,7 @@ "admin.permission_policies.edit.name_exists": "已存在同名策略。请选择其他名称。", "admin.permission_policies.edit.no_usable_attributes_tooltip": "请先配置用户属性以使用编辑器。", "admin.permission_policies.edit.notice.button": "配置用户属性", - "admin.permission_policies.edit.notice.text": "你尚未配置任何用户属性。基于属性的访问控制需要用户属性,这些属性可以从外部系统(如 LDAP 或 SAML)同步,或在此服务器上手动配置并启用。", + "admin.permission_policies.edit.notice.text": "您尚未配置任何用户属性。基于属性的访问控制需要用户属性,这些属性可以从外部系统(如 LDAP 或 SAML)同步,或在此服务器上手动配置并启用。", "admin.permission_policies.edit.notice.title": "请添加用户属性和值以使用基于属性的访问控制", "admin.permission_policies.edit.permissions.add": "添加权限", "admin.permission_policies.edit.permissions.column_header": "权限", @@ -1991,22 +1991,22 @@ "admin.permissions.group.guest_delete_post.name": "删除自己的消息", "admin.permissions.group.guest_edit_post.description": "在发布 {editTimeLimitButton} 后,允许用户编辑自己的消息。", "admin.permissions.group.guest_edit_post.name": "编辑自己的消息", - "admin.permissions.group.guest_reactions.description": "添加和删除消息的反应。", - "admin.permissions.group.guest_reactions.name": "消息反应", + "admin.permissions.group.guest_reactions.description": "添加和删除消息的表情回应。", + "admin.permissions.group.guest_reactions.name": "消息表情回应", "admin.permissions.group.guest_use_channel_mentions.description": "使用 @all、@channel 以及 @here 通知所有频道成员", "admin.permissions.group.guest_use_channel_mentions.name": "频道提及", "admin.permissions.group.guest_use_group_mentions.description": "使用组提及通知组成员", "admin.permissions.group.guest_use_group_mentions.name": "组提及", - "admin.permissions.group.integrations.description": "管理 Oauth、斜杠命令、webhook 以及表情符。", - "admin.permissions.group.integrations.name": "整合与自定义", + "admin.permissions.group.integrations.description": "管理 OAuth、斜杠命令、Webhook 以及表情符。", + "admin.permissions.group.integrations.name": "集成与自定义", "admin.permissions.group.manage_agents.description": "管理自己和他人的 AI 代理。", "admin.permissions.group.manage_agents.name": "管理 AI 代理", - "admin.permissions.group.manage_incoming_webhooks.description": "管理自己和他人的入站 Webhook。", - "admin.permissions.group.manage_incoming_webhooks.name": "管理入站 Webhook", + "admin.permissions.group.manage_incoming_webhooks.description": "管理自己和他人的传入 Webhook。", + "admin.permissions.group.manage_incoming_webhooks.name": "管理传入 Webhook", "admin.permissions.group.manage_oauth.description": "管理自己和他人的 OAuth 2.0 应用。", "admin.permissions.group.manage_oauth.name": "管理 OAuth 应用", - "admin.permissions.group.manage_outgoing_webhooks.description": "管理自己和他人的出站 Webhook。", - "admin.permissions.group.manage_outgoing_webhooks.name": "管理出站 Webhook", + "admin.permissions.group.manage_outgoing_webhooks.description": "管理自己和他人的传出 Webhook。", + "admin.permissions.group.manage_outgoing_webhooks.name": "管理传出 Webhook", "admin.permissions.group.manage_private_channel_bookmarks.description": "添加、编辑、删除和排序书签", "admin.permissions.group.manage_private_channel_bookmarks.name": "管理书签", "admin.permissions.group.manage_private_channel_members_and_read_groups.description": "添加和移除私有频道成员(包括频道管理员)。", @@ -2019,18 +2019,18 @@ "admin.permissions.group.manage_shared_channels.name": "共享频道", "admin.permissions.group.manage_slash_commands.description": "管理自己和他人的斜杠命令。", "admin.permissions.group.manage_slash_commands.name": "管理斜杠命令", - "admin.permissions.group.playbook_private.description": "管理私有Playbooks。", + "admin.permissions.group.playbook_private.description": "管理私有 Playbooks。", "admin.permissions.group.playbook_private.name": "管理私有 Playbook", - "admin.permissions.group.playbook_public.description": "管理公共Playbooks。", + "admin.permissions.group.playbook_public.description": "管理公共 Playbooks。", "admin.permissions.group.playbook_public.name": "管理公共 Playbook", "admin.permissions.group.posts.description": "编写,编辑以及删除消息。", "admin.permissions.group.posts.name": "管理消息", - "admin.permissions.group.private_channel.description": "创建和归档频道,管理设定和成员。", + "admin.permissions.group.private_channel.description": "创建和归档频道,管理设置和成员。", "admin.permissions.group.private_channel.name": "管理私有频道", - "admin.permissions.group.public_channel.description": "加入、创建以及归档频道,管理设定与成员。", + "admin.permissions.group.public_channel.description": "加入、创建以及归档频道,管理设置与成员。", "admin.permissions.group.public_channel.name": "管理公共频道", - "admin.permissions.group.reactions.description": "添加和删除消息的反应。", - "admin.permissions.group.reactions.name": "消息反应", + "admin.permissions.group.reactions.description": "添加和删除消息的表情回应。", + "admin.permissions.group.reactions.name": "消息表情回应", "admin.permissions.group.runs.description": "管理运行。", "admin.permissions.group.runs.name": "管理运行", "admin.permissions.group.send_invites.description": "添加团队成员、发送邮件邀请以及共享团队邀请链接。", @@ -2045,7 +2045,7 @@ "admin.permissions.loadingMoreSchemes": "加载中…", "admin.permissions.permission.assign_system_admin_role.description": "指派系统管理员身份", "admin.permissions.permission.assign_system_admin_role.name": "指派系统管理员身份", - "admin.permissions.permission.bypass_incoming_webhook_channel_lock.description": "允许入站 Webhook 在不需要锁定默认频道的情况下,向任何频道发送消息。", + "admin.permissions.permission.bypass_incoming_webhook_channel_lock.description": "允许传入 Webhook 在不需要锁定默认频道的情况下,向任何频道发送消息。", "admin.permissions.permission.bypass_incoming_webhook_channel_lock.name": "绕过频道锁定", "admin.permissions.permission.convert_private_channel_to_public.description": "转换私有频道为公共", "admin.permissions.permission.convert_private_channel_to_public.name": "转换为公共", @@ -2105,29 +2105,29 @@ "admin.permissions.permission.manage_channel_roles.name": "管理频道身份", "admin.permissions.permission.manage_custom_group_members.description": "添加和删除自定义组成员。", "admin.permissions.permission.manage_custom_group_members.name": "管理成员", - "admin.permissions.permission.manage_incoming_webhooks.description": "创建、编辑以及删除传入 webhook。", + "admin.permissions.permission.manage_incoming_webhooks.description": "创建、编辑以及删除传入 Webhook。", "admin.permissions.permission.manage_incoming_webhooks.name": "管理其他的", "admin.permissions.permission.manage_jobs.description": "管理身份", "admin.permissions.permission.manage_jobs.name": "管理身份", "admin.permissions.permission.manage_oauth.description": "创建、编辑以及删除 OAuth 2.0 应用令牌。", - "admin.permissions.permission.manage_oauth.name": "管理 OAuth 应用程序", + "admin.permissions.permission.manage_oauth.name": "管理 OAuth 应用", "admin.permissions.permission.manage_others_agent.description": "为其他用户创建和管理 AI 代理。", "admin.permissions.permission.manage_others_agent.name": "管理他人的 AI 代理", - "admin.permissions.permission.manage_others_incoming_webhooks.description": "创建、编辑和删除属于其他用户的入站 Webhook。", + "admin.permissions.permission.manage_others_incoming_webhooks.description": "创建、编辑和删除属于其他用户的传入 Webhook。", "admin.permissions.permission.manage_others_incoming_webhooks.name": "管理他人的", - "admin.permissions.permission.manage_others_outgoing_webhooks.description": "创建、编辑和删除属于其他用户的出站 Webhook。", + "admin.permissions.permission.manage_others_outgoing_webhooks.description": "创建、编辑和删除属于其他用户的传出 Webhook。", "admin.permissions.permission.manage_others_outgoing_webhooks.name": "管理他人的", "admin.permissions.permission.manage_others_slash_commands.description": "创建、编辑和删除属于其他用户的斜杠命令。", "admin.permissions.permission.manage_others_slash_commands.name": "管理他人的", "admin.permissions.permission.manage_outgoing_oauth_connections.description": "创建、编辑和删除对外 OAuth 凭据。", "admin.permissions.permission.manage_outgoing_oauth_connections.name": "管理对外 OAuth 凭据", - "admin.permissions.permission.manage_outgoing_webhooks.description": "创建、编辑和删除由其他用户拥有的出站 Webhook。", + "admin.permissions.permission.manage_outgoing_webhooks.description": "创建、编辑和删除属于其他用户的传出 Webhook。", "admin.permissions.permission.manage_outgoing_webhooks.name": "管理其他的", - "admin.permissions.permission.manage_own_agent.description": "创建和管理你自己的 AI 代理。", + "admin.permissions.permission.manage_own_agent.description": "创建和管理您自己的 AI 代理。", "admin.permissions.permission.manage_own_agent.name": "管理自己的 AI 代理", - "admin.permissions.permission.manage_own_incoming_webhooks.description": "创建、编辑和删除属于自己的入站 Webhook。", + "admin.permissions.permission.manage_own_incoming_webhooks.description": "创建、编辑和删除属于自己的传入 Webhook。", "admin.permissions.permission.manage_own_incoming_webhooks.name": "管理自己的", - "admin.permissions.permission.manage_own_outgoing_webhooks.description": "创建、编辑和删除属于自己的出站 Webhook。", + "admin.permissions.permission.manage_own_outgoing_webhooks.description": "创建、编辑和删除属于自己的传出 Webhook。", "admin.permissions.permission.manage_own_outgoing_webhooks.name": "管理自己的", "admin.permissions.permission.manage_own_slash_commands.description": "创建、编辑和删除属于自己的斜杠命令。", "admin.permissions.permission.manage_own_slash_commands.name": "管理自己的", @@ -2136,13 +2136,13 @@ "admin.permissions.permission.manage_private_channel_banner.description": "启用、禁用和编辑频道横幅。", "admin.permissions.permission.manage_private_channel_banner.name": "管理频道横幅", "admin.permissions.permission.manage_private_channel_properties.description": "更新私有频道名,标题和用途。", - "admin.permissions.permission.manage_private_channel_properties.name": "管理频道设定", + "admin.permissions.permission.manage_private_channel_properties.name": "管理频道设置", "admin.permissions.permission.manage_public_channel_auto_translation.description": "为公共频道启用或禁用自动翻译。", "admin.permissions.permission.manage_public_channel_auto_translation.name": "管理频道自动翻译", "admin.permissions.permission.manage_public_channel_banner.description": "启用、禁用和编辑频道横幅。", "admin.permissions.permission.manage_public_channel_banner.name": "管理频道横幅", "admin.permissions.permission.manage_public_channel_properties.description": "更新公共频道名,标题和用途。", - "admin.permissions.permission.manage_public_channel_properties.name": "管理频道设定", + "admin.permissions.permission.manage_public_channel_properties.name": "管理频道设置", "admin.permissions.permission.manage_roles.description": "管理身份", "admin.permissions.permission.manage_roles.name": "管理身份", "admin.permissions.permission.manage_secure_connections.description": "创建、删除以及查看共享频道的安全连接", @@ -2259,12 +2259,12 @@ "admin.permissions.sysconsole_section_compliance_compliance_monitoring.name": "合规监视", "admin.permissions.sysconsole_section_compliance_custom_terms_of_service.name": "自定义服务条款", "admin.permissions.sysconsole_section_compliance_data_retention_policy.name": "数据保留政策", - "admin.permissions.sysconsole_section_environment.description": "查看服务器环境配置,例如网址,数据库以及性能。", + "admin.permissions.sysconsole_section_environment.description": "查看服务器环境配置,例如 URL,数据库以及性能。", "admin.permissions.sysconsole_section_environment.name": "环境", "admin.permissions.sysconsole_section_environment_database.name": "数据库", "admin.permissions.sysconsole_section_environment_developer.name": "开发人员", "admin.permissions.sysconsole_section_environment_elasticsearch.name": "Elasticsearch", - "admin.permissions.sysconsole_section_environment_file_storage.name": "文件储存", + "admin.permissions.sysconsole_section_environment_file_storage.name": "文件存储", "admin.permissions.sysconsole_section_environment_high_availability.name": "高可用性", "admin.permissions.sysconsole_section_environment_image_proxy.name": "图片代理", "admin.permissions.sysconsole_section_environment_logging.name": "日志", @@ -2284,7 +2284,7 @@ "admin.permissions.sysconsole_section_integrations_bot_accounts.name": "机器人账号", "admin.permissions.sysconsole_section_integrations_cors.name": "CORS", "admin.permissions.sysconsole_section_integrations_gif.name": "GIF", - "admin.permissions.sysconsole_section_integrations_integration_management.name": "整合管理", + "admin.permissions.sysconsole_section_integrations_integration_management.name": "集成管理", "admin.permissions.sysconsole_section_plugins.description": "查看已安装的插件以及其配置。", "admin.permissions.sysconsole_section_plugins.name": "插件", "admin.permissions.sysconsole_section_reporting.description": "查看站点统计信息,团队统计信息和服务器日志。", @@ -2325,8 +2325,8 @@ "admin.permissions.systemScheme.channelAdminsDescription": "已给予权限至频道创建者以及任何频道管理员。", "admin.permissions.systemScheme.channelAdminsTitle": "频道管理员", "admin.permissions.systemScheme.introBanner": "配置给团队管理员、频道管理员、以及所有其他人默认权限方案。此方案将被所有团队继承除非团队覆盖方案已设置。", - "admin.permissions.systemScheme.playbookAdmin": "Playbook管理员", - "admin.permissions.systemScheme.playbookAdminSubtitle": "授予Playbook管理员的权限。", + "admin.permissions.systemScheme.playbookAdmin": "Playbook 管理员", + "admin.permissions.systemScheme.playbookAdminSubtitle": "授予 Playbook 管理员的权限。", "admin.permissions.systemScheme.resetDefaultsButton": "重置至默认", "admin.permissions.systemScheme.resetDefaultsButtonModalBody": "这将重置此页面的所有选择。您确定要重置吗?", "admin.permissions.systemScheme.resetDefaultsButtonModalTitle": "重置至默认?", @@ -2377,7 +2377,7 @@ "admin.plugin.cluster_instance": "集群", "admin.plugin.customSection.pluginDisabledWarning": "启用插件并点击保存以查看这一部分。", "admin.plugin.customSections.pluginDisabledWarning": "启用插件并点击保存以查看和配置插件设置。", - "admin.plugin.customSetting.pluginDisabledWarning": "开启插件并点击保存以查看此设定。", + "admin.plugin.customSetting.pluginDisabledWarning": "开启插件并点击保存以查看此设置。", "admin.plugin.disable": "停用", "admin.plugin.disabling": "正在停用…", "admin.plugin.enable": "启用", @@ -2396,7 +2396,7 @@ "admin.plugin.remove_modal.overwrite": "移除", "admin.plugin.remove_modal.title": "移除插件?", "admin.plugin.removing": "移除中…", - "admin.plugin.settingsButton": "设定", + "admin.plugin.settingsButton": "设置", "admin.plugin.state": "状态", "admin.plugin.state.failed_to_start": "启动失败", "admin.plugin.state.failed_to_start.check_logs": "请检查系统日志中的错误。", @@ -2480,8 +2480,8 @@ "admin.posts.sections.previews.title": "内容与预览", "admin.posts.sections.priority.description": "设置消息优先级和紧急通知的重复提醒。", "admin.posts.sections.priority.title": "优先级与紧急通知", - "admin.posts.sections.threads.description": "配置线程讨论和自动关注的默认设置。", - "admin.posts.sections.threads.title": "线程", + "admin.posts.sections.threads.description": "配置话题讨论和自动关注的默认设置。", + "admin.posts.sections.threads.title": "话题", "admin.privacy.showEmailDescription": "当设为否时,对除了系统管理员,以及拥有合规性、计费或用户管理的读写权限的系统角色外的所有人隐藏成员的邮箱。", "admin.privacy.showEmailTitle": "显示邮箱地址:", "admin.privacy.showFullNameDescription": "当设为否时,从除了系统管理员外隐藏成员的姓名。姓名将被用户名取代。", @@ -2499,11 +2499,11 @@ "admin.rate.maxBurst": "最大过载大小:", "admin.rate.maxBurstDescription": "超过每秒查询限制的最大请求数。", "admin.rate.maxBurstExample": "例如:“100”", - "admin.rate.memoryDescription": "连接到系统的最大用户会话数由以下“根据远程地址改变频率限制”以及“通过HTTP头变化频率限制”设定而决定。", + "admin.rate.memoryDescription": "连接到系统的最大用户会话数由以下“根据远程地址改变频率限制”以及“通过HTTP头变化频率限制”设置而决定。", "admin.rate.memoryExample": "例如:“10000”", "admin.rate.memoryTitle": "内存存储大小:", "admin.rate.noteDescription": "修改这段属性需要重启服务器才能生效。", - "admin.rate.queriesDescription": "限制每秒API请求数。", + "admin.rate.queriesDescription": "限制每秒 API 请求数。", "admin.rate.queriesExample": "例如:“10”", "admin.rate.queriesTitle": "每秒最大查询:", "admin.rate.remoteDescription": "当设为是时,使用基于 IP 的 API 速率限制。", @@ -2526,7 +2526,7 @@ "admin.reporting.workspace_optimization.access.descriptionOk": "您的 web 服务器配置可以通过实时 URL 测试!", "admin.reporting.workspace_optimization.access.site_url.cta": "配置 Web 服务器", "admin.reporting.workspace_optimization.access.site_url.description": "您的 Web 服务器设置未通过实时 URL 测试,这意味着用户可能无法访问您的工作区。我们建议您更新 Web 服务器设置。", - "admin.reporting.workspace_optimization.access.site_url.title": "配置错误的 Web 服务器", + "admin.reporting.workspace_optimization.access.site_url.title": "Web 服务器配置错误", "admin.reporting.workspace_optimization.access.title": "工作区访问", "admin.reporting.workspace_optimization.chip_problems": "问题:{count}", "admin.reporting.workspace_optimization.chip_suggestions": "建议:{count}", @@ -2599,11 +2599,11 @@ "admin.s3.s3Fail": "连接失败:{error}", "admin.s3.s3Success": "连接成功", "admin.s3.testing": "测试中…", - "admin.saml.adminAttrDesc": "(可选) 输入用于指定系统管理员的 SAML 断言。被此查询选定的用户将作为系统管理员拥有对您的 Mattermost 服务器的访问。默认情况下,系统管理员拥有对 Mattermost 系统控制台的完整访问。\n \n被此属性识别的现有成员将在下次登录时被提升为系统管理员。下次登录将取决于**系统控制台 > 会话时长**中设定的会话时长。强烈推荐在**系统控制台 > 用户管理**中手动降级成员以确保访问被立即限制。\n \n注意:如果此筛选器被移除或更改,由此筛选器提升的系统管理员将会被降级至成员,且不会保持对系统控制台的访问。当未使用此筛选器时,可在**系统控制台 > 用户管理**中手动提升或降级系统管理员。", + "admin.saml.adminAttrDesc": "(可选) 输入用于指定系统管理员的 SAML 断言。被此查询选定的用户将作为系统管理员拥有对您的 Mattermost 服务器的访问。默认情况下,系统管理员拥有对 Mattermost 系统控制台的完整访问。\n \n被此属性识别的现有成员将在下次登录时被提升为系统管理员。下次登录将取决于**系统控制台 > 会话时长**中设置的会话时长。强烈推荐在**系统控制台 > 用户管理**中手动降级成员以确保访问被立即限制。\n \n注意:如果此筛选器被移除或更改,由此筛选器提升的系统管理员将会被降级至成员,且不会保持对系统控制台的访问。当未使用此筛选器时,可在**系统控制台 > 用户管理**中手动提升或降级系统管理员。", "admin.saml.adminAttrEx": "例如:“usertype=Guest”或“isAdmin=true”", "admin.saml.adminAttrTitle": "管理员属性:", "admin.saml.assertionConsumerServiceURLEx": "例如:“your-mattermost-url”", - "admin.saml.assertionConsumerServiceURLPopulatedDesc": "此字段又名断言用户服务网址。", + "admin.saml.assertionConsumerServiceURLPopulatedDesc": "此字段又名断言用户服务 URL。", "admin.saml.assertionConsumerServiceURLTitle": "服务提供者登录地址:", "admin.saml.canonicalAlgorithmDescription.c14": "指定规范化算法(Canonical XML 1.1)。详情请查看 http://www.w3.org/2006/12/xml-c14n11", "admin.saml.canonicalAlgorithmDescription.exc": "指定规范化算法(Exclusive XML Canonicalization 1.0)。详情请查看 http://www.w3.org/2001/10/xml-exc-c14n#", @@ -2616,7 +2616,7 @@ "admin.saml.enableAdminAttrTitle": "开启管理员属性:", "admin.saml.enableDescription": "当设为是时,Mattermost 允许通过 SAML 2.0 登录。请查看文档以了解如何为 Mattermost 配置 SAML。", "admin.saml.enableSyncWithLdapDescription": "当设为是时,Mattermost 定期同步 SAML 用户属性,包括 AD/LDAP 中的用户停用和删除。在认证 > AD/LDAP中开启以及配置同步。当设为否时,用户属性将在用户登录时从 SAML 更新。查看文档以了解更多。", - "admin.saml.enableSyncWithLdapIncludeAuthDescription": "为 true 时,如果已配置,Mattermost 会用 AD/LDAP 的 ID 属性覆盖 SAML 的 ID 属性;如果未配置 SAML ID 属性,则会用 AD/LDAP 的邮件属性覆盖 SAML 的邮件属性。这样可以在用户的邮件地址变更时,自动将用户从基于邮件绑定迁移到基于 ID 绑定,防止创建新用户。将该选项从 true 改为 false,则不会再进行覆盖。注意:SAML ID 必须与 LDAP ID 匹配,以防止用户账户被禁用。请参阅文档了解更多信息。", + "admin.saml.enableSyncWithLdapIncludeAuthDescription": "为 true 时,如果已配置,Mattermost 会用 AD/LDAP 的 ID 属性覆盖 SAML 的 ID 属性;如果未配置 SAML ID 属性,则会用 AD/LDAP 的邮件属性覆盖 SAML 的邮件属性。这样可以在用户的邮件地址变更时,自动将用户从基于邮件绑定迁移到基于 ID 绑定,防止创建新用户。将该选项从 true 改为 false,则不会再进行覆盖。注意:SAML ID 必须与 LDAP ID 匹配,以防止用户账号被禁用。请参阅文档了解更多信息。", "admin.saml.enableSyncWithLdapIncludeAuthTitle": "使用 AD/LDAP 覆盖 SAML 绑定数据:", "admin.saml.enableSyncWithLdapTitle": "开启 SAML 账号与 AD/LDAP 同步:", "admin.saml.enableTitle": "开启 SAML 2.0 登录:", @@ -2625,11 +2625,11 @@ "admin.saml.firstnameAttrDesc": "(可选) SAML 断言中用于填充 Mattermost 中用户的名字的属性。", "admin.saml.firstnameAttrEx": "例如:“FirstName”", "admin.saml.firstnameAttrTitle": "名字属性:", - "admin.saml.getSamlMetadataFromIDPFail": "无法连接 SAML 元数据网址并获取数据", + "admin.saml.getSamlMetadataFromIDPFail": "无法连接 SAML 元数据 URL 并获取数据", "admin.saml.getSamlMetadataFromIDPFetching": "获取中…", "admin.saml.getSamlMetadataFromIDPSuccess": "SAML 元数据获取成功。下方的两个字段已更新", "admin.saml.getSamlMetadataFromIDPUrl": "从 IdP 获取 SAML 元数据", - "admin.saml.guestAttrDesc": "(可选) 需要访客访问开启才能应用。SAML 断言中用于为用户应用访客角色的属性。访客在从登录后起,到被分配到至少一个团队和频道前无法访问团队或频道。\n \n注:如果此属性从您的 SAML 的访客用户中被移除或更改,且用户依然活动,他们不会被提升为成员且将保持他们的访客角色。访客可以在**系统控制台 > 用户管理**中被提升。\n \n \n被此属性识别为访客的现有成员将在他们下次登录时被从成员降级为访客。下次登录将取决于**系统控制台 > 会话时长**中设定的会话时长。强烈推荐在**系统控制台 > 用户管理**中手动降级成员以确保访问被立即限制。", + "admin.saml.guestAttrDesc": "(可选) 需要访客访问开启才能应用。SAML 断言中用于为用户应用访客角色的属性。访客在从登录后起,到被分配到至少一个团队和频道前无法访问团队或频道。\n \n注:如果此属性从您的 SAML 的访客用户中被移除或更改,且用户依然活动,他们不会被提升为成员且将保持他们的访客角色。访客可以在**系统控制台 > 用户管理**中被提升。\n \n \n被此属性识别为访客的现有成员将在他们下次登录时被从成员降级为访客。下次登录将取决于**系统控制台 > 会话时长**中设置的会话时长。强烈推荐在**系统控制台 > 用户管理**中手动降级成员以确保访问被立即限制。", "admin.saml.guestAttrEx": "例如:“usertype=Guest”或“isGuest=true”", "admin.saml.guestAttrTitle": "访客属性:", "admin.saml.idAttrDesc": "(可选) 使用 SAML 断言中的属性绑定 Mattermost 中的用户。", @@ -2638,15 +2638,15 @@ "admin.saml.idpCertificateFileDesc": "由可信任的身份认证系统提供商所提供的证书公钥。", "admin.saml.idpCertificateFileRemoveDesc": "从身份提供商中移除公钥认证信息。", "admin.saml.idpCertificateFileTitle": "身份认证商公钥证书:", - "admin.saml.idpDescriptorUrlDesc": "在使用SAML请求时所访问的身份提供商的核发者网址。", + "admin.saml.idpDescriptorUrlDesc": "在使用 SAML 请求时所访问的身份提供商的核发者 URL。", "admin.saml.idpDescriptorUrlEx": "例如:“https://idp.example.org/SAML2/issuer”", "admin.saml.idpDescriptorUrlTitle": "身份提供商核发地址:", - "admin.saml.idpMetadataUrlDesc": "Mattermost 获取元数据的网址", + "admin.saml.idpMetadataUrlDesc": "Mattermost 获取元数据的 URL", "admin.saml.idpMetadataUrlEx": "例如:“https://idp.example.org/SAML2/saml/metadata”", - "admin.saml.idpMetadataUrlTitle": "身份提供商元数据网址:", + "admin.saml.idpMetadataUrlTitle": "身份提供商元数据 URL:", "admin.saml.idpUrlDesc": "Mattermost 发送 SAML 请求至以开始登录程序的 URL。", "admin.saml.idpUrlEx": "例如:“https://idp.example.org/SAML2/SSO/Login”", - "admin.saml.idpUrlTitle": "SAML SSO 网址:", + "admin.saml.idpUrlTitle": "SAML SSO URL:", "admin.saml.ignoreGuestsLdapSyncDesc": "当设为是时,Mattermost 将忽略由访客属性标识的访客用户,当与 AD/LDAP 同步进行用户停用和移除时,需要通过系统控制台 > 用户手动管理访客停用。", "admin.saml.ignoreGuestsLdapSyncTitle": "与 AD/LDAP 同步时忽略访客用户", "admin.saml.lastnameAttrDesc": "(可选) SAML 断言中用于填充 Mattermost 中用户的姓氏的属性。", @@ -2665,7 +2665,7 @@ "admin.saml.positionAttrEx": "例如:“Role”", "admin.saml.positionAttrTitle": "职位属性:", "admin.saml.privateKeyFileFileDesc": "用于解密从身份认证商中返回的 SAML 断言的私钥。", - "admin.saml.privateKeyFileFileRemoveDesc": "移除用于解析从身份认证商中返回的SAML数据的私钥。", + "admin.saml.privateKeyFileFileRemoveDesc": "移除用于解析从身份认证商中返回的 SAML 数据的私钥。", "admin.saml.privateKeyFileTitle": "服务提供商密钥:", "admin.saml.publicCertificateFileDesc": "当 Mattermost 是服务提供者时,用于生成发送至身份提供者,以进行由服务提供者发起的 SAML 登录的 SAML 请求中的签名。", "admin.saml.publicCertificateFileRemoveDesc": "移除当 Mattermost 是服务提供者时,用于生成发送至身份提供者,以进行由服务提供者发起的 SAML 登录的 SAML 请求中的签名。", @@ -2784,13 +2784,13 @@ "admin.service.complianceExportTitle": "启动合规导出:", "admin.service.corsAllowCredentialsDescription": "当设为是时,通过验证的请求将包含 Access-Control-Allow-Credentials 头。", "admin.service.corsAllowCredentialsLabel": "CORS 允许证书:", - "admin.service.corsDebugDescription": "当设为是时,输出消息到日志以帮助使用 CORS 的整合开发。这些消息将包含键值 \"source\":\"cors\"。", - "admin.service.corsDescription": "启用一个特定域的 HTTP 跨起源请求。使用“*”或者将其保留为空如果您想允许来自任何域的 CORS 请求。正式环境下请勿设定为“*”。", + "admin.service.corsDebugDescription": "当设为是时,输出消息到日志以帮助使用 CORS 的集成开发。这些消息将包含键值 \"source\":\"cors\"。", + "admin.service.corsDescription": "启用一个特定域的 HTTP 跨起源请求。使用“*”或者将其保留为空如果您想允许来自任何域的 CORS 请求。正式环境下请勿设置为“*”。", "admin.service.corsEx": "http://example.com", "admin.service.corsExposedHeadersDescription": "请求者可以读取的头白名单。", "admin.service.corsExposedHeadersTitle": "CORS 公开的头:", "admin.service.corsHeadersEx": "X-My-Header", - "admin.service.corsTitle": "允许来自以下跨源请求网址:", + "admin.service.corsTitle": "允许来自以下跨源请求 URL:", "admin.service.developerDesc": "开启时,Javascript 错误将显示在页面顶端紫色条里。不推荐在正式环境使用。", "admin.service.developerTitle": "开启开发者模式: ", "admin.service.disableBotOwnerDeactivatedTitle": "当拥有者被停用时停用机器人账号:", @@ -2803,21 +2803,21 @@ "admin.service.extendSessionLengthActivity.label": "使用活动延长会话时长: ", "admin.service.forward80To443": "映射端口 80 到 443:", "admin.service.forward80To443Description": "将所有不安全的通讯从端口 80 转至端口 443。使用代理服务器时不推荐。", - "admin.service.forward80To443Description.disabled": "将所有不安全的通讯从端口 80 转至端口 443。使用代理服务器时不推荐。\n \n此设定只有在服务器[监听](#ServiceSettings.ListenAddress)端口 443 时可以开启。", + "admin.service.forward80To443Description.disabled": "将所有不安全的通讯从端口 80 转至端口 443。使用代理服务器时不推荐。\n \n此设置只有在服务器[监听](#ServiceSettings.ListenAddress)端口 443 时可以开启。", "admin.service.googleDescription": "设置此密钥以启用内嵌 YouTube 视频预览。如果没有此密钥,YouTube 预览仍然会在消息或评论中显示但不会显示视频标题。查看 Google Developers Tutorial 以了解如何获取密钥并将 YouTube Data API v3 作为服务添加到您的密钥。", "admin.service.googleExample": "例如:“7rAh6iwQCkV4cA1Gsg3fgGOXJAQ43QV”", "admin.service.googleTitle": "Google API 密钥:", - "admin.service.iconDescription": "当设为是时,webhook、斜杠命令以及其他整合比如 Zapier 会允许修改发出信息的头像。注意:和允许整合覆盖用户名配合将可能造成用户被钓鱼攻击。", - "admin.service.iconTitle": "允许整合覆盖头像:", - "admin.service.insecureTlsDesc": "当设为是时,所有传出 HTTPS 请求将接受未验证,自签名的证书。例如,传出 webhook 到任意域名用自签名 TLS 证书的服务器将被允许。注意,这会使得这些连接产生中间人攻击危险。", + "admin.service.iconDescription": "当设为是时,Webhook、斜杠命令以及 Zapier 等其他集成可以修改发出消息的头像。注意:与允许集成覆盖用户名配合使用时,可能会造成用户被钓鱼攻击。", + "admin.service.iconTitle": "允许集成覆盖头像:", + "admin.service.insecureTlsDesc": "当设为是时,所有传出 HTTPS 请求将接受未经验证的自签名证书。例如,传出 Webhook 指向使用自签名 TLS 证书的任意域名服务器时将被允许。注意,这会让这些连接存在中间人攻击风险。", "admin.service.insecureTlsTitle": "启用不安全的传出连接: ", - "admin.service.integrationRequestDesc": "等待集成请求的秒数。包含斜杠命令对外 Webhook交互式消息交互式对话框。", + "admin.service.integrationRequestDesc": "等待集成请求的秒数。包含斜杠命令传出 Webhook交互式消息交互式对话框。", "admin.service.integrationRequestTitle": "集成请求超时: ", - "admin.service.internalConnectionsDesc": "Mattermost 服务器可代表客户端请求的局域网地址的白名单。使用此设定需要注意防止意外访问您的本地网络。查看文档以了解更多。", - "admin.service.internalConnectionsEx": "webhooks.internal.example.com 127.0.0.1 10.0.16.0/28", + "admin.service.internalConnectionsDesc": "Mattermost 服务器可代表客户端请求的局域网地址的白名单。使用此设置需要注意防止意外访问您的本地网络。查看文档以了解更多。", + "admin.service.internalConnectionsEx": "Webhook.internal.example.com 127.0.0.1 10.0.16.0/28", "admin.service.internalConnectionsTitle": "允许不受信任的内部连接到: ", "admin.service.letsEncryptCertificateCacheFile": "Let's Encrypt 证书缓存文件:", - "admin.service.letsEncryptCertificateCacheFileDescription": "从 Let's Encrypt 服务获取的证书和其他数据将储存于此文件。", + "admin.service.letsEncryptCertificateCacheFileDescription": "从 Let's Encrypt 服务获取的证书和其他数据将存储于此文件。", "admin.service.listenAddress": "监听地址:", "admin.service.listenDescription": "绑定和监听的地址和端口。指定“:8065”将会绑定所有网络接口。指定“127.0.0.1:8065”将只绑定拥有此 IP 的网络接口。如果您选择一个低级端口(叫作“系统端口”或“知名端口”,于 0-1023 之间),您必须要拥有权限才能绑定至此端口。在 Linux 上您可以使用:”sudo setcap cap_net_bind_service=+ep ./bin/mattermost”以允许 Mattermost 绑定至知名端口。", "admin.service.listenExample": "例如:“:8065”", @@ -2833,13 +2833,13 @@ "admin.service.mobileSessionHours": "移动会话时长(小时):", "admin.service.mobileSessionHoursDesc": "从用户输入凭据的上次时间到用户会话过期的小时数。更改此设置后,新的会话时长将在用户下次输入凭据后生效。", "admin.service.mobileSessionHoursDesc.extendLength": "设置从 Mattermost 的最后活动到用户在移动设备上会话过期的小时数。更改此设置后,新的会话时长将在用户下次输入凭据后生效。", - "admin.service.outWebhooksDesc": "当设为是时,允许传出 webhook。查看文档以了解更多。", + "admin.service.outWebhooksDesc": "当设为是时,允许传出 Webhook。查看文档以了解更多。", "admin.service.outWebhooksTitle": "启用传出 Webhook: ", - "admin.service.outgoingOAuthConnectionsDesc": "当设为是时,对外 webhook 和斜杠命令将使用已设置的 oauth 连接与第三方服务进行认证。查看文档以了解更多。", + "admin.service.outgoingOAuthConnectionsDesc": "当设为是时,传出 Webhook 和斜杠命令将使用已设置的 OAuth 连接与第三方服务进行认证。查看文档以了解更多。", "admin.service.outgoingOAuthConnectionsTitle": "启用对外 OAuth 连接: ", - "admin.service.overrideDescription": "当设为是时,webhook、斜杠命令以及其他整合比如 [Zapier](!https://developers.mattermost.com/integrate/admin-guide/admin-zapier-integration/) 会允许修改发出信息的用户名。注意:和允许整合覆盖头像配合将可能造成用户被钓鱼攻击。", - "admin.service.overrideTitle": "允许整合覆盖用户名:", - "admin.service.performanceDebuggingDescription": "如果为真,用户可以在“设置 > 高级 > 性能调试”中访问其帐户的调试设置,以帮助诊断性能问题。更改此设置需要在生效之前重新启动服务器。", + "admin.service.overrideDescription": "当设为是时,Webhook、斜杠命令以及 [Zapier](!https://developers.mattermost.com/integrate/admin-guide/admin-zapier-integration/) 等其他集成可以修改发出消息的用户名。注意:与允许集成覆盖头像配合使用时,可能会造成用户被钓鱼攻击。", + "admin.service.overrideTitle": "允许集成覆盖用户名:", + "admin.service.performanceDebuggingDescription": "如果为 true,用户可以在“设置 > 高级 > 性能调试”中访问其账号的调试设置,以帮助诊断性能问题。更改此设置需要重启服务器后才会生效。", "admin.service.performanceDebuggingTitle": "启用客户端性能调试: ", "admin.service.readTimeout": "读取超时:", "admin.service.readTimeoutDescription": "从连接接收到请求本体完全读取的时间限制。", @@ -2850,17 +2850,17 @@ "admin.service.sessionIdleTimeoutDesc": "用户最后活动时间到用户会话失效的分钟数。一旦失效,用户将需要登录才能继续。至少 5 分钟,0 为无限。\n\n使用于桌面应用和浏览器。移动设备应用使用 EMM 提供商使应用在没有活动时锁定。在高可用性模式下,开启 IP 哈系负载平衡来取得可靠的过时测量。", "admin.service.sessionIdleTimeoutEx": "例如:“60”", "admin.service.sessionMinutesEx": "例如:“10”", - "admin.service.siteURL": "站点网址:", - "admin.service.siteURLDescription": "用户访问 Mattermost 的 URL。默认端口如 80 和 443 可以被省略,但使用非标准端口时必须填写。例如:http://example.com:8065。此设定为必填。\n \nMattermost 可以使用子路径。举例:http://example.com:8065/company/mattermost。在服务器正常工作前需重启。", + "admin.service.siteURL": "站点 URL:", + "admin.service.siteURLDescription": "用户访问 Mattermost 的 URL。默认端口如 80 和 443 可以被省略,但使用非标准端口时必须填写。例如:http://example.com:8065。此设置为必填。\n \nMattermost 可以使用子路径。举例:http://example.com:8065/company/mattermost。在服务器正常工作前需重启。", "admin.service.siteURLExample": "例如:“http://example.com:8065”", "admin.service.ssoSessionHours": "SSO会话时长(小时):", "admin.service.ssoSessionHoursDesc": "从用户输入凭据的上次时间到用户会话过期的小时数。如果身份验证方法是 SAML 或 GitLab,如果用户已经登录到 SAML 或 GitLab,他们可能会自动登录到 Mattermost。更改此设置后,设置将在用户下次输入凭据后生效。", "admin.service.ssoSessionHoursDesc.extendLength": "设置从 Mattermost 的最后活动到用户在 SSO 身份验证(如 SAML、GitLab 和 OAuth 2.0)中会话过期的小时数。如果身份验证方法是 SAML 或 GitLab,如果用户已经登录到 SAML 或 GitLab,他们可能会自动登录到 Mattermost。更改此设置后,设置将在用户下次输入凭据后生效。", "admin.service.terminateSessionsOnPasswordChange.helpText": "当设为是时,如果用户自己或管理员更改了密码,该用户的所有会话将过期。如果密码更改是由用户发起的,他们当前的会话不会被终止。", "admin.service.terminateSessionsOnPasswordChange.label": "更改密码时终止会话: ", - "admin.service.testSiteURL": "测试网址", + "admin.service.testSiteURL": "测试 URL", "admin.service.testSiteURLFail": "测试失败: {error}", - "admin.service.testSiteURLSuccess": "测试成功。此为有效网址。", + "admin.service.testSiteURLSuccess": "测试成功。此为有效 URL。", "admin.service.testSiteURLTesting": "测试中…", "admin.service.testingDescription": "当设为是时,/test 斜杠命令能载入测试账号,数据和文字格式。修改这个设置需要重启服务器才能生效。", "admin.service.testingTitle": "启动测试指令:", @@ -2871,17 +2871,17 @@ "admin.service.useLetsEncrypt": "使用 Let's Encrypt:", "admin.service.useLetsEncryptDescription": "开启自动从 Let's Encrypt 获取证书。证书将在客户端尝试从新的域名连接时获取。此功能将可以在多域名使用。", "admin.service.useLetsEncryptDescription.disabled": "启用自动从 Let's Encrypt 获取证书。证书将在客户端尝试从新的域名连接时获取。此功能将可以在多域名使用。\n \n若[映射端口 80 到 443](#ServiceSettings.Forward80To443)未设为启用,此设置无法启用。", - "admin.service.userAccessTokensDescription": "当设为是时,用户可以为集成创建个人访问令牌(入口位于 个人资料 > 安全)。此类令牌可用于 API 认证,并授予对该账户的完全访问权限。\n\n如需管理谁可以创建个人访问令牌或按令牌 ID 搜索用户,请前往 系统控制台 > 用户管理 > 用户。", + "admin.service.userAccessTokensDescription": "当设为是时,用户可以为集成创建个人访问令牌(入口位于 个人资料 > 安全)。此类令牌可用于 API 认证,并授予对该账号的完全访问权限。\n\n如需管理谁可以创建个人访问令牌或按令牌 ID 搜索用户,请前往 系统控制台 > 用户管理 > 用户。", "admin.service.userAccessTokensTitle": "开启个人访问令牌:", - "admin.service.webSessionHours": "AD/LDAP和电子邮件会话时长(小时):", + "admin.service.webSessionHours": "AD/LDAP 和邮件会话时长(小时):", "admin.service.webSessionHoursDesc": "从用户输入凭据的上次时间到用户会话过期的小时数。更改此设置后,新的会话时长将在用户下次输入凭据后生效。", - "admin.service.webSessionHoursDesc.extendLength": "设置从 Mattermost 的最后活动到用户在使用电子邮件和 AD/LDAP 身份验证时会话过期的小时数。更改此设置后,新的会话时长将在用户下次输入凭据后生效。", - "admin.service.webhooksDescription": "当设为是时,允许传入 webhook。为了避免钓鱼攻击,所有来自 webhook 的消息都会标上 BOT 标签。查看文档以了解更多。", + "admin.service.webSessionHoursDesc.extendLength": "设置从 Mattermost 的最后活动到用户在使用邮件和 AD/LDAP 身份验证时会话过期的小时数。更改此设置后,新的会话时长将在用户下次输入凭据后生效。", + "admin.service.webhooksDescription": "当设为是时,允许传入 Webhook。为了避免钓鱼攻击,所有来自 Webhook 的消息都会标上 BOT 标签。查看文档以了解更多。", "admin.service.webhooksTitle": "启用传入 Webhook: ", "admin.service.writeTimeout": "写入超时:", "admin.service.writeTimeoutDescription": "如果使用 HTTP (不安全),这是从读取请求头结尾到写入完响应最大允许的时间。如果使用 HTTPS,这将是从接受连接到写入完响应的总时间。", "admin.sessionLengths.title": "会话时长", - "admin.set_by_env": "此设定必须在环境变量设定。无法在系统控制台中更改。", + "admin.set_by_env": "此设置必须在环境变量设置。无法在系统控制台中更改。", "admin.sidebar.about": "关于", "admin.sidebar.announcement": "系统范围通知", "admin.sidebar.attributeBasedAccessControl": "基于属性的访问", @@ -2911,7 +2911,7 @@ "admin.sidebar.experimentalFeatures": "功能", "admin.sidebar.exportStorage": "导出存储", "admin.sidebar.fileSharingDownloads": "文件共享与下载", - "admin.sidebar.fileStorage": "文件储存", + "admin.sidebar.fileStorage": "文件存储", "admin.sidebar.filter": "文件设置", "admin.sidebar.gif": "GIF", "admin.sidebar.gitlab": "GitLab", @@ -2954,6 +2954,7 @@ "admin.sidebar.subscription": "订阅", "admin.sidebar.systemAttributes": "系统属性", "admin.sidebar.systemRoles": "委托细化管理", + "admin.sidebar.systemStatistics": "系统统计", "admin.sidebar.teamStatistics": "团队统计", "admin.sidebar.teams": "团队", "admin.sidebar.userManagement": "用户管理", @@ -3197,7 +3198,7 @@ "admin.system_users.list.userIsRemoteAriaLabel": "这是一位远程用户", "admin.system_users.revokeAllSessions": "吊销所有会话", "admin.system_users.revoke_all_sessions_button": "吊销所有会话", - "admin.system_users.revoke_all_sessions_modal_message": "此操作将吊销系统中的所有会话。所有用户将会从所有设备退出,包括您的会话。您确定要吊销所有会话吗?", + "admin.system_users.revoke_all_sessions_modal_message": "此操作将吊销系统中的所有会话。所有用户都将从所有设备退出登录,包括您的会话。您确定要吊销所有会话吗?", "admin.system_users.revoke_all_sessions_modal_title": "吊销系统中所有会话", "admin.system_users.search.placeholder": "搜索用户", "admin.system_users.title": "{siteName} 用户", @@ -3215,11 +3216,11 @@ "admin.team.customUserGroupsTitle": "启用自定义用户组: ", "admin.team.customUserStatusesDescription": "当设为是时,用户可以设置对所有用户可见的描述性状态消息和状态表情符。", "admin.team.customUserStatusesTitle": "启用自定义状态: ", - "admin.team.deleteAccountDesc": "个人设置安全标签中\"删除账号\"链接的网址。如果此字段为空,\"删除账号\"链接将对用户隐藏。", + "admin.team.deleteAccountDesc": "个人设置安全标签中\"删除账号\"链接的 URL。如果此字段为空,\"删除账号\"链接将对用户隐藏。", "admin.team.deleteAccountTitle": "删除账号链接:", "admin.team.emailInvitationsDescription": "当设为是时,用户可以用用邮件邀请其他人到此系统。", "admin.team.emailInvitationsTitle": "启用发送邮件邀请: ", - "admin.team.enableJoinLeaveMessageDescription": "选择当用户加入或离开频道时显示的系统消息的默认配置。用户可以通过在账户设置 > 高级中配置加入/离开消息来覆盖此默认配置。", + "admin.team.enableJoinLeaveMessageDescription": "选择当用户加入或离开频道时显示的系统消息的默认配置。用户可以通过在账号设置 > 高级中配置加入/离开消息来覆盖此默认配置。", "admin.team.enableJoinLeaveMessageTitle": "默认情况下启用加入/离开消息:", "admin.team.invalidateEmailInvitesDescription": "这将废止用户未接受的邮件邀请。默认情况下邮件邀请会在 48 小时后失效。", "admin.team.invalidateEmailInvitesFail": "无法废止邮件邀请:{error}", @@ -3248,9 +3249,9 @@ "admin.team.restrictDirectMessage": "允许用户私信的频道:", "admin.team.restrictDirectMessageDesc": "“任何 Mattermost 服务器上的用户”将允许用户于任何人开启私信频道,就算他们不在同一个团队。“任何团队成员”将限制私信中的“更多”菜单对同一个团队上的用户开启私信。", "admin.team.restrictExample": "例如:“corp.mattermost.com, mattermost.com”", - "admin.team.restrictGuestDescription": "新用户的账号限制为上方指定的邮箱域名(例如“mattermost.com”)或者一个用逗号分隔的域名列表(例如“corp.mattermost.com, mattermost.com”)。新团队只能由以上域名的用户创建。此设定会影响用户的邮箱登录。对于方可用户,请在注册 > 访客访问下添加域名。", + "admin.team.restrictGuestDescription": "新用户的账号限制为上方指定的邮箱域名(例如“mattermost.com”)或者一个用逗号分隔的域名列表(例如“corp.mattermost.com, mattermost.com”)。新团队只能由以上域名的用户创建。此设置会影响用户的邮箱登录。对于访客用户,请在注册 > 访客访问下添加域名。", "admin.team.restrictTitle": "只允许特定邮箱域名创建账号:", - "admin.team.restrict_direct_message_any": "在Mattermost服务器上的任何用户", + "admin.team.restrict_direct_message_any": "Mattermost 服务器上的任何用户", "admin.team.restrict_direct_message_team": "任何团队成员", "admin.team.showFullname": "显示姓名", "admin.team.showNickname": "若存在昵称显示昵称,否则显示姓名", @@ -3272,7 +3273,7 @@ "admin.team_channel_settings.convertAndRemoveConfirmModal.toPrivateConfirm": "是,转换频道为私有并移除 {amount, number} {amount, plural, other {位用户}}", "admin.team_channel_settings.convertAndRemoveConfirmModal.toPrivateTitle": "转换频道为私有并移除 {amount, number} {amount, plural, other {位用户}}?", "admin.team_channel_settings.convertAndRemoveConfirmModal.toPublicConfirm": "是,转换频道为公共并移除 {amount, number} {amount, plural, other {位用户}}", - "admin.team_channel_settings.convertAndRemoveConfirmModal.toPublicTitle": "将频道转换为公开频道并移除 {amount, number} 位{amount, plural, one {用户} other {用户}}?", + "admin.team_channel_settings.convertAndRemoveConfirmModal.toPublicTitle": "将频道转换为公共频道并移除 {amount, number} 位{amount, plural, one {用户} other {用户}}?", "admin.team_channel_settings.convertConfirmModal.cancel": "不,取消", "admin.team_channel_settings.convertConfirmModal.toPrivateConfirm": "是,转换为私有频道", "admin.team_channel_settings.convertConfirmModal.toPrivateMessageFirstLine": "当您将{displayName}转换为私有频道时,历史记录和成员将被保留。公开共享的文件仍然可以通过链接被任何人访问。私有频道需要被邀请才能加入。", @@ -3308,12 +3309,12 @@ "admin.team_channel_settings.user_list.groupsHeader": "群组", "admin.team_channel_settings.user_list.nameHeader": "名称", "admin.team_channel_settings.user_list.roleHeader": "身份", - "admin.team_channel_settings.usersToBeRemovedModal.channel_message": "以下成员不在当前关联到此频道的任何群组中。由于此频道设定为由群组同步管理,保存后将被全部删除。", + "admin.team_channel_settings.usersToBeRemovedModal.channel_message": "以下成员不在当前关联到此频道的任何群组中。由于此频道设置为由群组同步管理,保存后将被全部删除。", "admin.team_channel_settings.usersToBeRemovedModal.close": "关闭", - "admin.team_channel_settings.usersToBeRemovedModal.message": "以下成员不在当前关联到此团队的任何群组中。由于此团队设定为由群组同步管理,保存后将被全部删除。", + "admin.team_channel_settings.usersToBeRemovedModal.message": "以下成员不在当前关联到此团队的任何群组中。由于此团队设置为由群组同步管理,保存后将被全部删除。", "admin.team_channel_settings.users_will_be_removed": "{amount, number} {amount, plural, other {位用户}}将被从此团队移除。他们不在关联到此团队的群组中。", "admin.team_channel_settings.view_removed_users": "查看这些用户", - "admin.team_settings.description": "管理团队设定。", + "admin.team_settings.description": "管理团队设置。", "admin.team_settings.groupsPageTitle": "{siteName} 团队", "admin.team_settings.team_detail.archive_confirm.button": "归档", "admin.team_settings.team_detail.archive_confirm.message": "归档将从用户界面中移除该团队,但其内容仍保留在数据库中,并且仍可通过 API 访问。您确定要保存并归档此团队吗?", @@ -3432,7 +3433,7 @@ "admin.user_item.menuAriaLabel": "用户操作菜单", "admin.user_item.remoteUser": "远程用户", "admin.user_item.resetMfa": "移除多重验证", - "admin.user_item.resetPassword.magicLink.tooltip": "无法为 Magic Link 账户重置密码。", + "admin.user_item.resetPassword.magicLink.tooltip": "无法为 Magic Link 账号重置密码。", "admin.user_item.resetPwd": "重置密码", "admin.user_item.sysAdmin": "系统管理员", "admin.user_item.teamAdmin": "团队管理员", @@ -3451,8 +3452,8 @@ "admin.webserverModeDisabled": "已禁用", "admin.webserverModeDisabledDescription": "Mattermost 服务器不会提供静态文件。", "admin.webserverModeGzip": "gzip", - "admin.webserverModeGzipDescription": "Mattermost 服务器将传输gzip压缩过的静态文件。", - "admin.webserverModeHelpText": "gzip压缩会应用到静态文件。建议开启gzip来增强性能除非您的环境有特殊限制,比如网页代理于gzip文件不兼容。", + "admin.webserverModeGzipDescription": "Mattermost 服务器将传输 gzip 压缩过的静态文件。", + "admin.webserverModeHelpText": "gzip 压缩会应用到静态文件。建议开启 gzip 来增强性能;除非您的环境有特殊限制,例如网页代理与 gzip 文件不兼容。", "admin.webserverModeTitle": "网页服务器模式:", "admin.webserverModeUncompressed": "未压缩", "admin.webserverModeUncompressedDescription": "Mattermost 服务器将传输未压缩过的静态文件。", @@ -3490,11 +3491,11 @@ "alert_banner.tooltipCloseBtn": "关闭", "analytics.chart.loading": "加载中…", "analytics.chart.meaningful": "没有足够的数据进行有意义的表示。", - "analytics.system.activeUsers": "有发信息的的正常用户", + "analytics.system.activeUsers": "发送过消息的活跃用户", "analytics.system.channelTypes": "频道类型", "analytics.system.dailyActiveUsers": "每日活动用户", "analytics.system.info": "只有被选中的团队的数据被计算。私信频道消息不会被包含因为它们不属于任何团队。", - "analytics.system.infoAndSkippedIntensiveQueries1": "仅使用所选团队的数据。排除与团队无关的直接消息频道中的消息。", + "analytics.system.infoAndSkippedIntensiveQueries1": "仅使用所选团队的数据。排除与团队无关的私信频道中的消息。", "analytics.system.infoAndSkippedIntensiveQueries2": "为了提高性能,某些统计信息已禁用。您可以在在 config.json 中重新启用它们。", "analytics.system.monthlyActiveUsers": "每月活动用户", "analytics.system.perDayStatistics": "加载高级统计数据", @@ -3503,7 +3504,7 @@ "analytics.system.publicChannels": "公共频道", "analytics.system.seatsPurchased": "许可席位", "analytics.system.singleChannelGuests": "单频道访客", - "analytics.system.singleChannelGuests.info.tooltip.hint": "仅在一个频道中的访客不会计入你的已激活用户总数。", + "analytics.system.singleChannelGuests.info.tooltip.hint": "仅在一个频道中的访客不会计入您的已激活用户总数。", "analytics.system.singleChannelGuests.info.tooltip.title": "单频道访客", "analytics.system.singleChannelGuests.tooltip.hint": "单频道访客数量不得超过已许可席位总数", "analytics.system.singleChannelGuests.tooltip.title": "单频道访客已达上限", @@ -3522,7 +3523,7 @@ "analytics.system.totalSessions": "会话总数", "analytics.system.totalTeams": "团队总数", "analytics.system.totalWebsockets": "Websocket 连接", - "analytics.team.activeUsers": "有发信息的的正常用户", + "analytics.team.activeUsers": "发送过消息的活跃用户", "analytics.team.newlyCreated": "新建的用户", "analytics.team.noTeams": "此服务器没有团队可查看统计。", "analytics.team.overageUsersSeats": "已超出许可证总席位数", @@ -3560,11 +3561,11 @@ "api.channel.add_guest.added": "{addedUsername} 被 {username} 以访客身份添加至此频道。", "api.channel.add_member.added": "{addedUsername} 被 {username} 添加到此频道。", "api.channel.auto_translation_change.message.disabled": "{username} 禁用了此频道的自动翻译。所有消息将以原语言显示。", - "api.channel.auto_translation_change.message.enabled": "{username} 禁用了此频道的自动翻译。所有消息将以您的偏好语言显示。", + "api.channel.auto_translation_change.message.enabled": "{username} 启用了此频道的自动翻译。所有消息将以您的偏好语言显示。", "api.channel.delete_channel.archived": "{username}归档了频道。", "api.channel.group_message_converted_to.private_channel": "{convertedBy} 从与 {gmMembers} 的群组消息中创建了该频道。", "api.channel.group_message_converted_to.someone": "某人", - "api.channel.guest_join_channel.post_and_forget": "{username}以访客身份加入了频道。", + "api.channel.guest_join_channel.post_and_forget": "{username} 以访客身份加入了频道。", "api.channel.join_channel.post_and_forget": "{username}加入了频道。", "api.channel.leave.left": "{username}离开了频道。", "api.channel.post_convert_channel_to_private.updated_from": "{username}已将频道从公共转换为私有", @@ -3595,49 +3596,49 @@ "app_bar.marketplace": "应用市场", "apps.error": "错误:{error}", "apps.error.command.field_missing": "缺少必填字段:`{fieldName}`。", - "apps.error.command.same_channel": "频道重复,字段 `{fieldName}`:`{option}`。", - "apps.error.command.same_option": "选项重复,字段 `{fieldName}`:`{option}`。", - "apps.error.command.same_user": "用户重复,字段 `{fieldName}`:`{option}`。", + "apps.error.command.same_channel": "字段 `{fieldName}` 的频道重复:`{option}`。", + "apps.error.command.same_option": "字段 `{fieldName}` 的选项重复:`{option}`。", + "apps.error.command.same_user": "字段 `{fieldName}` 的用户重复:`{option}`。", "apps.error.command.unknown_channel": "未知字段的频道 `{fieldName}`:`{option}`。", "apps.error.command.unknown_option": "未知字段的选项 `{fieldName}`:`{option}`。", "apps.error.command.unknown_user": "未知字段的用户 `{fieldName}`:`{option}`。", - "apps.error.form.no_form": "未定义`form`。", + "apps.error.form.no_form": "未定义 `form`。", "apps.error.form.no_lookup": "未定义“lookup”。", "apps.error.form.no_source": "未定义“source”。", "apps.error.form.no_submit": "未定义“submit”。", "apps.error.form.refresh": "更新模态时出错。联系应用开发者。详情:{details}", "apps.error.form.refresh_no_refresh": "在无刷新字段上调用刷新。", "apps.error.form.required_fields_empty": "请修复所有字段错误", - "apps.error.form.submit.pretext": "提交模态时出错。与应用程序开发人员联系。详细信息:{details}", + "apps.error.form.submit.pretext": "提交对话框时出错。请联系应用开发者。详细信息:{details}", "apps.error.form.update": "更新模态窗口时出现错误。请联系应用开发人员。详细信息:{details}", "apps.error.lookup.error_preparing_request": "准备查询请求时出错:{errorMessage}", - "apps.error.malformed_binding": "此绑定格式不正确。请联系应用开发人员。", + "apps.error.malformed_binding": "此绑定格式不正确。请联系应用开发者。", "apps.error.parser": "解析错误:{error}", "apps.error.parser.empty_value": "不允许空值", "apps.error.parser.execute_non_leaf": "您必须选择子命令。", "apps.error.parser.missing_binding": "缺少指令绑定。", - "apps.error.parser.missing_field_value": "字段值丢失。", - "apps.error.parser.missing_list_end": "预期的列表结束令牌。", + "apps.error.parser.missing_field_value": "缺少字段值。", + "apps.error.parser.missing_list_end": "预期列表结束令牌。", "apps.error.parser.missing_quote": "预期在输入结束之前有匹配的双引号。", "apps.error.parser.missing_source": "表单既没有提交也没有源。", "apps.error.parser.missing_submit": "绑定或表单中没有提交调用。", - "apps.error.parser.missing_tick": "预期在输入结束之前有匹配的勾号。", + "apps.error.parser.missing_tick": "预期在输入结束前出现匹配的反引号。", "apps.error.parser.multiple_equal": "不允许多个 `=` 符号。", "apps.error.parser.no_argument_pos_x": "无法识别参数。", "apps.error.parser.no_bindings": "没有命令绑定。", "apps.error.parser.no_form": "未找到表单。", "apps.error.parser.no_match": "`{command}`:在此工作空间中找不到匹配的命令。", "apps.error.parser.no_slash_start": "命令必须以 `/` 开头。", - "apps.error.parser.unexpected_character": "未预料的字符。", - "apps.error.parser.unexpected_comma": "未预料的逗号。", - "apps.error.parser.unexpected_error": "意外的错误。", + "apps.error.parser.unexpected_character": "意外字符。", + "apps.error.parser.unexpected_comma": "意外逗号。", + "apps.error.parser.unexpected_error": "意外错误。", "apps.error.parser.unexpected_flag": "命令不接受标志 `{flagName}`。", - "apps.error.parser.unexpected_squared_bracket": "未预料的列表。", - "apps.error.parser.unexpected_state": "无法访问:未预料的状态 matchBinding:`{state}`。", - "apps.error.parser.unexpected_whitespace": "无法访问:未预料的空白。", + "apps.error.parser.unexpected_squared_bracket": "意外的左方括号。", + "apps.error.parser.unexpected_state": "无法访问:意外状态 matchBinding:`{state}`。", + "apps.error.parser.unexpected_whitespace": "无法访问:意外空白。", "apps.error.responses.form.no_form": "响应类型为“表单”,但响应中未包含任何表单。", - "apps.error.responses.navigate.no_url": "响应类型为“导航”,但响应中未包含网址。", - "apps.error.responses.unexpected_error": "收到未预料的错误。", + "apps.error.responses.navigate.no_url": "响应类型为 `navigate`,但响应中未包含 URL。", + "apps.error.responses.unexpected_error": "收到意外错误。", "apps.error.responses.unexpected_type": "应用响应类型不是预期的。响应类型:{type}", "apps.error.responses.unknown_field_error": "收到未知字段的错误。字段名称:`{field}`。错误:\n{error}", "apps.error.responses.unknown_type": "不支持此应用的响应类型。响应类型:{type}。", @@ -3652,34 +3653,34 @@ "audit_table.accountActive": "账号已激活", "audit_table.accountInactive": "账号已停用", "audit_table.action": "操作", - "audit_table.attemptedAllowOAuthAccess": "试图允许一个新的OAuth服务访问", + "audit_table.attemptedAllowOAuthAccess": "试图允许一个新的 OAuth 服务访问", "audit_table.attemptedLicenseAdd": "试图添加新的许可证", "audit_table.attemptedLogin": "试图登录", - "audit_table.attemptedOAuthToken": "试图得到一个OAuth访问令牌", + "audit_table.attemptedOAuthToken": "试图得到一个 OAuth 访问令牌", "audit_table.attemptedPassword": "试图修改密码", - "audit_table.attemptedRegisterApp": "试图注册一个新ID{id}的OAuth应用", + "audit_table.attemptedRegisterApp": "试图注册一个新 ID{id}的 OAuth 应用", "audit_table.attemptedReset": "试图重置密码", - "audit_table.attemptedWebhookCreate": "试图创建一个 webhook", - "audit_table.attemptedWebhookDelete": "试图删除一个 webhook", + "audit_table.attemptedWebhookCreate": "试图创建一个 Webhook", + "audit_table.attemptedWebhookDelete": "试图删除一个 Webhook", "audit_table.authenticated": "成功验证", "audit_table.by": " 由 {username}", "audit_table.byAdmin": " 由管理员", "audit_table.channelCreated": "创建了 {channelName} 频道", - "audit_table.channelDeleted": "归档了网址为 {url} 的频道", + "audit_table.channelDeleted": "归档了 URL 为 {url} 的频道", "audit_table.establishedDM": "与 {username} 建立了一个私聊频道", "audit_table.failedExpiredLicenseAdd": "许可证由于已过期或未开始而无法添加", - "audit_table.failedInvalidLicenseAdd": "无法添加无效的许可证", + "audit_table.failedInvalidLicenseAdd": "无法添加:许可证无效", "audit_table.failedLogin": "尝试登录失败", - "audit_table.failedOAuthAccess": "允许新OAuth服务访问失败-重定向URL不匹配以前注册的回调", + "audit_table.failedOAuthAccess": "允许新 OAuth 服务访问失败:重定向 URL 与以前注册的回调不匹配", "audit_table.failedPassword": "修改密码失败 - 试图通过 OAuth 登录的用户更新密码", - "audit_table.failedWebhookCreate": "创建一个webhook失败-没有频道权限", - "audit_table.failedWebhookDelete": "删除webhook失败-不合适的条件", + "audit_table.failedWebhookCreate": "创建 Webhook 失败:没有频道权限", + "audit_table.failedWebhookDelete": "删除 Webhook 失败:条件不适用", "audit_table.headerUpdated": "更新了{channelName}的频道标题", "audit_table.ip": "IP地址", "audit_table.licenseRemoved": "成功删除许可证", "audit_table.loginAttempt": " (登录尝试)", "audit_table.loginFailure": " (登录失败)", - "audit_table.logout": "注销您的账号", + "audit_table.logout": "退出您的账号", "audit_table.member": "成员", "audit_table.nameUpdated": "更新了 {channelName} 频道名称", "audit_table.oauthTokenFailed": "获取 OAuth 令牌 - {token}", @@ -3689,12 +3690,12 @@ "audit_table.sessionRevoked": "ID {sessionId} 的会话已被吊销", "audit_table.successfullLicenseAdd": "成功添加新的许可证", "audit_table.successfullLogin": "登录成功", - "audit_table.successfullOAuthAccess": "成功开启新OAuth服务访问", - "audit_table.successfullOAuthToken": "成功添加了一个新的OAuth服务", + "audit_table.successfullOAuthAccess": "成功开启新 OAuth 服务访问", + "audit_table.successfullOAuthToken": "成功添加了一个新的 OAuth 服务", "audit_table.successfullPassword": "修改密码成功", "audit_table.successfullReset": "重置密码成功", - "audit_table.successfullWebhookCreate": "成功创建了一个 webhook", - "audit_table.successfullWebhookDelete": "删除webhook成功", + "audit_table.successfullWebhookCreate": "成功创建了一个 Webhook", + "audit_table.successfullWebhookDelete": "删除 Webhook 成功", "audit_table.timestamp": "时间戳", "audit_table.updateGeneral": "更新您账号的基本设置", "audit_table.updateGlobalNotifications": "更新全局通知设置", @@ -3750,7 +3751,7 @@ "bot.manage.enable": "启用", "bot.remove_profile_picture": "移除机器人图标", "bot.token.default.description": "默认令牌", - "bot.token.error.description": "请输入个描述。", + "bot.token.error.description": "请输入描述。", "bots.add.displayName": "显示名称", "bots.add.icon": "机器人图标", "bots.add.username": "用户名", @@ -3767,7 +3768,7 @@ "bots.manage.add.invalid_username": "用户名必须小写字母开头并且为 3-22 字符长。您可以使用小写字母、数字、句号、破折号以及下划线。", "bots.manage.bot_accounts": "机器人账号", "bots.manage.created.text": "您的机器人账号 {botname} 创建成功。请使用以下访问令牌连接到机器人 (参见文件了解更多)。", - "bots.manage.description": "使用机器人以插件和 API 进行与 Mattermost 整合", + "bots.manage.description": "使用机器人以插件和 API 进行与 Mattermost 集成", "bots.manage.edit": "编辑", "bots.manage.edit.editing": "更新中…", "bots.manage.edit.title": "更新", @@ -3780,7 +3781,7 @@ "bots.token.confirm_text": "您确认要删除此令牌?", "bots.token.delete": "删除令牌", "burn_on_read.badge.read_receipt": "已被 {revealedCount} / {totalRecipients} 位接收者阅读", - "burn_on_read.badge.recipient.subtitle": "消息将在你查看后 {time} 被删除", + "burn_on_read.badge.recipient.subtitle": "消息将在您查看后 {time} 被删除", "burn_on_read.badge.recipient.title": "阅后即焚消息", "burn_on_read.badge.sender.delete": "点击为所有人删除消息", "burn_on_read.button.tooltip.hint": "接收者在打开消息后,消息将在 {duration} 分钟后被删除", @@ -3803,17 +3804,17 @@ "center_panel.archived.closeChannel": "关闭频道", "center_panel.direct.closeDirectMessage": "关闭私信", "center_panel.direct.closeGroupMessage": "关闭组消息", - "center_panel.input.cannot_load_component": "加载组件时出现问题。请稍等片刻,或尝试重新加载应用程序。", + "center_panel.input.cannot_load_component": "加载组件时出现问题。请稍等片刻,或尝试重新加载应用。", "center_panel.noSharedTeam.closeChannel": "关闭频道", "center_panel.reloadPage": "重新加载", - "change_url.endWithLetter": "网址必须以字母或数字结尾。", - "change_url.invalidDirectMessage": "频道网址不能有用户 ID。", - "change_url.invalidUrl": "无效的网址", - "change_url.longer": "网址必须至少 2 个字符。", + "change_url.endWithLetter": "URL 必须以字母或数字结尾。", + "change_url.invalidDirectMessage": "频道 URL 不能有用户 ID。", + "change_url.invalidUrl": "URL 无效", + "change_url.longer": "URL 必须至少 2 个字符。", "change_url.noSpecialChars": "URL 不能使用特殊字符。", "change_url.shorter": "URL 的最大长度为 64 个字符。", - "change_url.startAndEndWithLetter": "网址的开头和结尾必须为小写字母或数字。", - "change_url.startWithLetter": "网址的开头必须为小写字母或数字。", + "change_url.startAndEndWithLetter": "URL 的开头和结尾必须为小写字母或数字。", + "change_url.startWithLetter": "URL 的开头必须为小写字母或数字。", "channelHeader.addToFavorites": "添加到收藏", "channelHeader.hideInfo": "关闭详情", "channelHeader.managedCategoryFavoriteDisabled": "托管分类中的频道无法被收藏。", @@ -3882,11 +3883,11 @@ "channel_header.channelFiles": "频道文件", "channel_header.channelHasGuests": "频道内有访客", "channel_header.channelMembers": "成员", - "channel_header.channel_settings": "频道设定", + "channel_header.channel_settings": "频道设置", "channel_header.closeChannelInfo": "关闭详情", "channel_header.delete": "归档频道", "channel_header.directchannel": "{displayName}(您)频道菜单", - "channel_header.directchannel.you": "{displayName}(你) ", + "channel_header.directchannel.you": "{displayName}(您) ", "channel_header.flagged": "保存的消息", "channel_header.groupMessageHasGuests": "此群组消息有访客", "channel_header.headerText.addNewButton": "添加频道标题", @@ -3898,11 +3899,11 @@ "channel_header.muteConversation": "静音", "channel_header.openChannelInfo": "频道详情", "channel_header.otherchannel": "{displayName}频道菜单", - "channel_header.pinnedPosts": "标注消息", + "channel_header.pinnedPosts": "固定消息", "channel_header.recentMentions": "最近提及", "channel_header.search": "搜索", "channel_header.setConversationHeader": "编辑标题", - "channel_header.settings": "设定", + "channel_header.settings": "设置", "channel_header.unarchive": "取消归档频道", "channel_header.unmute": "取消静音频道", "channel_header.unmuteConversation": "取消静音", @@ -3937,7 +3938,7 @@ "channel_info_rhs.menu.files.filter.videos": "视频", "channel_info_rhs.menu.members": "成员", "channel_info_rhs.menu.notification_preferences": "通知偏好", - "channel_info_rhs.menu.pinned": "标注消息", + "channel_info_rhs.menu.pinned": "固定消息", "channel_info_rhs.menu.title": "频道信息操作", "channel_info_rhs.top_buttons.add_people": "添加成员", "channel_info_rhs.top_buttons.add_people.tooltip": "添加团队成员到此频道", @@ -3998,7 +3999,7 @@ "channel_members_rhs.policy_enforced_restrictions": "频道访问被用户属性限制", "channel_members_rhs.search_bar.aria.cancel_search_button": "取消成员搜索", "channel_members_rhs.search_bar.placeholder": "搜索成员", - "channel_mention_badge.urgent_tooltip": "你有一个紧急提及", + "channel_mention_badge.urgent_tooltip": "您有一个紧急提及", "channel_menu.bookmarks": "书签栏", "channel_menu.bookmarks.addFile": "附加文件", "channel_menu.bookmarks.addLink": "添加链接", @@ -4069,18 +4070,18 @@ "channel_settings.access_rules.confirm_modal.view_users": "查看用户", "channel_settings.access_rules.error.back_to_editing": "返回编辑", "channel_settings.access_rules.error.no_current_user": "无法验证访问规则:未找到当前用户", - "channel_settings.access_rules.error.self_exclusion_message": "你无法设置此规则,因为这会将你从频道中移除。请更新访问规则,确保你满足这些规则,并且不会导致任何意外问题。", + "channel_settings.access_rules.error.self_exclusion_message": "您无法设置此规则,因为这会将您从频道中移除。请更新访问规则,确保您满足这些规则,并且不会导致任何意外问题。", "channel_settings.access_rules.error.self_exclusion_title": "无法保存访问规则", "channel_settings.access_rules.error.validation_failed": "验证访问规则失败。请重试。", "channel_settings.access_rules.expression_required_for_autosync": "启用自动添加成员时,必须设置访问规则", "channel_settings.access_rules.form_error": "上方的表单中存在错误", - "channel_settings.access_rules.parse_error": "无效的表达式格式", + "channel_settings.access_rules.parse_error": "表达式格式无效", "channel_settings.access_rules.save_error": "保存访问规则失败", "channel_settings.access_rules.subtitle": "选择用户属性和值作为规则,限制频道成员资格", "channel_settings.access_rules.title": "访问规则", "channel_settings.activity_warning.acknowledge_expose_history": "我确认此更改将使更多用户能够访问所有历史频道消息", "channel_settings.activity_warning.exposing_history_description": "修改访问规则可能会允许新用户查看整个消息历史记录,包括在此更改之前发送的消息。", - "channel_settings.activity_warning.exposing_history_title": "公开频道历史记录", + "channel_settings.activity_warning.exposing_history_title": "公共频道历史记录", "channel_settings.activity_warning.save_and_apply": "保存并应用", "channel_settings.archive.button": "归档此频道", "channel_settings.archive.warning": "归档频道会将其从用户界面删除,但不会永久删除该频道。已归档的频道中不能发送新消息。", @@ -4092,7 +4093,7 @@ "channel_settings.header.label": "频道标题", "channel_settings.modal.archiveTitle": "归档频道?", "channel_settings.modal.confirmArchive": "确认", - "channel_settings.modal.title": "频道设定", + "channel_settings.modal.title": "频道设置", "channel_settings.purpose.description": "表述此频道应该如何使用。", "channel_settings.purpose.header": "这是显示在频道名称旁的频道标题中的文本。您可以输入 [链接标题](http://example.com) 以使用 markdown 来包含链接。", "channel_settings.purpose.label": "频道用途", @@ -4107,15 +4108,14 @@ "channel_settings.share_channel_with_workspaces.add_aria": "添加工作区", "channel_settings.share_channel_with_workspaces.description": "与可信组织在此频道中协作。", "channel_settings.share_channel_with_workspaces.disable_toggle_tooltip": "没有可用的已连接工作区", - "channel_settings.share_channel_with_workspaces.disable_toggle_tooltip_hint": "请联系你的系统管理员添加一个。", - "channel_settings.share_channel_with_workspaces.no_workspaces_available": "没有可用的已连接工作区。请联系你的系统管理员添加一个。", + "channel_settings.share_channel_with_workspaces.disable_toggle_tooltip_hint": "请联系您的系统管理员添加一个。", + "channel_settings.share_channel_with_workspaces.no_workspaces_available": "没有可用的已连接工作区。请联系您的系统管理员添加一个。", "channel_settings.share_channel_with_workspaces.pending_save": "待保存", "channel_settings.share_channel_with_workspaces.remove_aria": "移除 {name}", "channel_settings.share_channel_with_workspaces.title": "与已连接的工作区共享", "channel_settings.share_channel_with_workspaces.workspaces_label": "此频道共享到的工作区", "channel_settings.share_channel_with_workspaces.workspaces_label_empty": "此频道尚未与任何已连接的工作区共享。", "channel_settings.sharing_errors": "与某些工作区共享频道时发生错误。请重试。", - "channel_settings.tab.access_control": "访问控制", "channel_settings.tab.archive": "归档频道", "channel_settings.tab.configuration": "配置", "channel_settings.tab.info": "信息", @@ -4130,7 +4130,7 @@ "channel_toggle_button.public": "公共", "channel_translation.label.name": "自动翻译", "channel_translation.label.subtext": "当启用时,此频道内的消息将被翻译为成员自己的语言。成员可以在频道菜单中选择退出以查看原始消息。", - "claim.email_to_ldap.enterLdapPwd": "输入您 AD/LDAP 账号的ID和密码", + "claim.email_to_ldap.enterLdapPwd": "输入您 AD/LDAP 账号的 ID 和密码", "claim.email_to_ldap.enterPwd": "输入您的{site}账号密码", "claim.email_to_ldap.ldapId": "AD/LDAP ID", "claim.email_to_ldap.ldapIdError": "请输入您的 AD/LDAP ID。", @@ -4179,7 +4179,7 @@ "cloud_preview_modal.cyberdefense.ai.subtitle": "使用助理增强协作。即刻总结通话、列出待办事项,并快速找到答案——均使用您信任的模型。", "cloud_preview_modal.cyberdefense.ai.title": "自己选择 Mattermost 助理使用的 AI 模型", "cloud_preview_modal.cyberdefense.messaging.sku_label": "企业版", - "cloud_preview_modal.cyberdefense.messaging.subtitle": "在唯一的安全平台内整合对话与上下文。使用优先级、持久通知和已读回执进行紧迫沟通——以确保争分夺秒时的关键消息能被接收并采取行动。", + "cloud_preview_modal.cyberdefense.messaging.subtitle": "在唯一的安全平台内集成对话与上下文。使用优先级、持久通知和已读回执进行紧迫沟通——以确保争分夺秒时的关键消息能被接收并采取行动。", "cloud_preview_modal.cyberdefense.messaging.title": "为行动而非噪音打造的消息传递", "cloud_preview_modal.cyberdefense.playbooks.sku_label": "企业版", "cloud_preview_modal.cyberdefense.playbooks.subtitle": "在您的团队中使用由基于检查单的自动化驱动的工作流,以更快推进且减少错误。", @@ -4197,7 +4197,7 @@ "cloud_preview_modal.devsecops.ai.subtitle": "使用助理增强协作。即刻总结通话、列出待办事项,并快速找到答案——均使用您信任的模型。", "cloud_preview_modal.devsecops.ai.title": "自己选择 Mattermost 助理使用的 AI 模型", "cloud_preview_modal.devsecops.messaging.sku_label": "企业版", - "cloud_preview_modal.devsecops.messaging.subtitle": "在唯一的安全平台内整合对话与上下文。使用优先级、持久通知和已读回执进行紧迫沟通——以确保争分夺秒时的关键消息能被接收并采取行动。", + "cloud_preview_modal.devsecops.messaging.subtitle": "在唯一的安全平台内集成对话与上下文。使用优先级、持久通知和已读回执进行紧迫沟通——以确保争分夺秒时的关键消息能被接收并采取行动。", "cloud_preview_modal.devsecops.messaging.title": "为行动而非噪音打造的消息传递", "cloud_preview_modal.devsecops.playbooks.sku_label": "企业版", "cloud_preview_modal.devsecops.playbooks.subtitle": "在您的团队中使用由基于检查单的自动化驱动的工作流,以更快推进且减少错误。", @@ -4218,7 +4218,7 @@ "cloud_preview_modal.missionops.ai.subtitle": "使用助理增强协作。即刻总结通话、列出待办事项,并快速找到答案——均使用您信任的模型。", "cloud_preview_modal.missionops.ai.title": "自己选择 Mattermost 助理使用的 AI 模型", "cloud_preview_modal.missionops.messaging.sku_label": "企业版", - "cloud_preview_modal.missionops.messaging.subtitle": "在唯一的安全平台内整合对话与上下文。使用优先级、持久通知和已读回执进行紧迫沟通——以确保争分夺秒时的关键消息能被接收并采取行动。", + "cloud_preview_modal.missionops.messaging.subtitle": "在唯一的安全平台内集成对话与上下文。使用优先级、持久通知和已读回执进行紧迫沟通——以确保争分夺秒时的关键消息能被接收并采取行动。", "cloud_preview_modal.missionops.messaging.title": "为行动而非噪音打造的消息传递", "cloud_preview_modal.missionops.playbooks.sku_label": "企业版", "cloud_preview_modal.missionops.playbooks.subtitle": "在您的团队中使用由基于检查单的自动化驱动的工作流,以更快推进且减少错误。", @@ -4239,17 +4239,17 @@ "cloud_signup.signup_consequences": "您的信用卡将在今天被扣款。 了解计费方式。", "cloud_upgrade.error_min_seats": "至少需要 10 个席位", "collapsed_reply_threads_modal.confirm": "收到", - "combined_system_message.added_to_channel.many_expanded": "{actor} 添加了 {users} 以及 {lastUser} 至**此频道**。", + "combined_system_message.added_to_channel.many_expanded": "{actor} 将 {users} 和 {lastUser} 添加至**此频道**。", "combined_system_message.added_to_channel.one": "{actor} 添加了 {firstUser} 至**此频道**。", "combined_system_message.added_to_channel.one_you": "您被 {actor} 添加至**此频道**。", "combined_system_message.added_to_channel.two": "{actor} 添加了 {firstUser} 和 {secondUser} 至**此频道**。", - "combined_system_message.added_to_team.many_expanded": "{actor} 添加了 {users} 以及 {lastUser} 至**此团队**。", + "combined_system_message.added_to_team.many_expanded": "{actor} 将 {users} 和 {lastUser} 添加至**此团队**。", "combined_system_message.added_to_team.one": "{actor} 添加了 {firstUser} 至**此团队**。", "combined_system_message.added_to_team.one_you": "您被 {actor} 添加至**此团队**。", "combined_system_message.added_to_team.two": "{actor} 添加了 {firstUser} 和 {secondUser} 至**此团队**。", "combined_system_message.join_left_channel.many_expanded": "{users} 和 {lastUser} **加入又离开了频道**。", "combined_system_message.join_left_channel.one": "{firstUser} **加入又离开了频道**。", - "combined_system_message.join_left_channel.one_you": "你 **加入又离开了频道**。", + "combined_system_message.join_left_channel.one_you": "您 **加入又离开了频道**。", "combined_system_message.join_left_channel.two": "{firstUser} 和 {secondUser} **加入又离开了频道**。", "combined_system_message.joined_channel.many_expanded": "{users} 以及 {lastUser} **加入了此频道**。", "combined_system_message.joined_channel.one": "{firstUser} **加入了此频道**。", @@ -4266,11 +4266,11 @@ "combined_system_message.left_team.many_expanded": "{users} 以及 {lastUser} **离开了此团队**。", "combined_system_message.left_team.one": "{firstUser} **离开了此团队**。", "combined_system_message.left_team.one_you": "您**离开了团队**。", - "combined_system_message.left_team.two": "{firstUser} 以及 {secondUser} **离开了此团队**。", + "combined_system_message.left_team.two": "{firstUser} 和 {secondUser} **离开了此团队**。", "combined_system_message.removed_from_channel.many_expanded": "{users} 以及 {lastUser} **被移出此频道**。", "combined_system_message.removed_from_channel.one": "{firstUser} **被移出此频道**。", "combined_system_message.removed_from_channel.one_you": "您**被移出此频道**。", - "combined_system_message.removed_from_channel.two": "{firstUser} 以及 {secondUser} **被移出此频道**。", + "combined_system_message.removed_from_channel.two": "{firstUser} 和 {secondUser} **被移出此频道**。", "combined_system_message.removed_from_team.many_expanded": "{users} 以及 {lastUser} **被移出此团队**。", "combined_system_message.removed_from_team.one": "{firstUser} **被移出此团队**。", "combined_system_message.removed_from_team.one_you": "您**被移出此团队**。", @@ -4301,7 +4301,7 @@ "copy.text.message": "复制文本", "copy_text.copied": "已复制", "copy_text.copy": "复制", - "createComment.threadFromArchivedChannelMessage": "您正在查看已归档频道中的一个线程。无法发布新消息。", + "createComment.threadFromArchivedChannelMessage": "您正在查看已归档频道中的一个话题。无法发布新消息。", "createComment.threadFromDeactivatedUserMessage": "您正在查看包含已停用用户的已归档频道。无法发布新消息。", "create_category_modal.create": "创建", "create_category_modal.createCategory": "创建新分类", @@ -4334,7 +4334,7 @@ "create_post.prewritten.tip.team_hi_message": ":wave: 大家好!", "create_post.read_only": "此频道为只读。只有拥有权限的成员可在此发布消息。", "create_post.shortcutsNotSupported": "您的设备不支持键盘快捷键。", - "create_post.write": "发送到{channelDisplayName}", + "create_post.write": "在 {channelDisplayName} 中撰写消息", "create_post_button.option.schedule_message": "计划消息", "create_post_button.option.schedule_message.options.choose_custom_time": "选择自定义时间", "create_post_button.option.schedule_message.options.header": "计划消息", @@ -4360,10 +4360,10 @@ "create_team.team_url.hint3": "必须以字母开头且不能横杠结尾", "create_team.team_url.regex": "只使用小写字母,数字和连字符。必须以字母开头且不能以连字符结尾。", "create_team.team_url.required": "此字段为必填", - "create_team.team_url.taken": "网址以预留词开头或无法使用。请重新尝试。", + "create_team.team_url.taken": "URL以预留词开头或无法使用。请重新尝试。", "create_team.team_url.teamUrl": "团队 URL", - "create_team.team_url.unavailable": "此网址不可用。请重新尝试。", - "create_team.team_url.webAddress": "选择您的新团队网址:", + "create_team.team_url.unavailable": "此 URL 不可用。请重新尝试。", + "create_team.team_url.webAddress": "选择您的新团队 URL:", "custom_emoji.header": "自定义表情", "custom_status.expiry.until": "至 {time}", "custom_status.expiry_dropdown.choose_date_and_time": "选择日期和时间", @@ -4376,13 +4376,13 @@ "custom_status.expiry_dropdown.this_week": "本周", "custom_status.expiry_dropdown.today": "今天", "custom_status.modal_cancel": "清除状态", - "custom_status.modal_confirm": "设定状态", - "custom_status.set_status": "设定状态", + "custom_status.modal_confirm": "设置状态", + "custom_status.set_status": "设置状态", "custom_status.suggestions.clear": "清除", "custom_status.suggestions.in_a_meeting": "在开会", - "custom_status.suggestions.on_a_vacation": "在度假", - "custom_status.suggestions.out_for_lunch": "在午餐", - "custom_status.suggestions.out_sick": "生病中", + "custom_status.suggestions.on_a_vacation": "休假中", + "custom_status.suggestions.out_for_lunch": "午餐中", + "custom_status.suggestions.out_sick": "病假中", "custom_status.suggestions.recent_title": "最近", "custom_status.suggestions.title": "建议", "custom_status.suggestions.working_from_home": "居家办公", @@ -4400,11 +4400,11 @@ "datetime.today": "今日", "datetime.yesterday": "昨日", "deactivate_member_modal.deactivate": "停用", - "deactivate_member_modal.desc": "此操作将停用 {username}。他们将被注销并无法访问此系统上的任何团队或频道。\n", + "deactivate_member_modal.desc": "此操作将停用 {username}。该用户将退出登录,并无法访问此系统上的任何团队或频道。\n", "deactivate_member_modal.desc.confirm": "您确定要停用 {username}?", "deactivate_member_modal.desc.for_users_with_bot_accounts1": "此操作将停用 {username}", "deactivate_member_modal.desc.for_users_with_bot_accounts2": "他们将被登出,无法访问此系统上的任何团队或频道。", - "deactivate_member_modal.desc.for_users_with_bot_accounts3": "他们管理的机器人帐户将与其集成一起被禁用。要重新启用它们,请转到集成 > 机器人帐户。 深入了解机器人账号。", + "deactivate_member_modal.desc.for_users_with_bot_accounts3": "他们管理的机器人账号将与其集成一起被禁用。要重新启用它们,请转到集成 > 机器人账号。 深入了解机器人账号。", "deactivate_member_modal.desc_with_confirmation": "此操作将停用 {username}。他们将被登出,并无法访问此系统中的任何团队或频道。您确定要停用 {username} 吗?", "deactivate_member_modal.sso_warning": "您必须在 SSO 提供者处停用此用户,否则他们将在下次登录或同步时被重新启用。", "deactivate_member_modal.title": "停用 {username}", @@ -4431,7 +4431,7 @@ "demote_to_user_modal.desc": "此操作将降级用户 {username} 至访客。此用户将无法加入公共频道或与指定频道中成员外的用户互动。您确定要降级 {username} 至访客?", "demote_to_user_modal.title": "降级用户 {username} 至访客", "desktop_auth_token.complete.havingTrouble": "登录遇到问题了吗?请在浏览器中打开 Mattermost", - "desktop_auth_token.complete.openMattermost": "在浏览器提示中点击打开 Mattermost,以启动桌面应用程序,请点击此处", + "desktop_auth_token.complete.openMattermost": "在浏览器提示中点击打开 Mattermost,以启动桌面应用,请点击此处", "desktop_auth_token.complete.youAreNowLoggedIn": "您已成功登录", "desktop_auth_token.error.restartFlow": "请点击这里再次尝试。", "desktop_auth_token.error.somethingWentWrong": "出现了一些问题", @@ -4464,7 +4464,7 @@ "drafts.draft_title.direct_thread": "给:{icon} {channelName}的话题", "drafts.draft_title.you": "(您)", "drafts.empty.subtitle": "您发起的任何消息都将显示在此处。", - "drafts.empty.title": "目前没有草稿", + "drafts.empty.title": "暂无草稿", "drafts.error.post_not_found": "未找到话题", "drafts.error.read_only": "频道为只读", "drafts.error.too_long": "消息过长", @@ -4497,24 +4497,24 @@ "edit_outgoing_oauth_connection.updating": "更新中…", "edit_post.action_buttons.cancel": "取消", "edit_post.action_buttons.save": "保存", - "edit_post.editPost": "编辑信息…", + "edit_post.editPost": "编辑消息…", "edit_post.helper_text": "{key}回车保存,ESC取消", "edit_post.no_notification_trigger_on_mention": "编辑信息并加上“@提及”并不会通知到目标用户。", "edit_post.time_limit_button.for_n_seconds": "⚙ {n} 秒", "edit_post.time_limit_button.no_limit": "随时", - "edit_post.time_limit_modal.invalid_time_limit": "无效的时间限制", + "edit_post.time_limit_modal.invalid_time_limit": "时间限制无效", "edit_post.time_limit_modal.option_label_anytime": "随时", "edit_post.time_limit_modal.option_label_time_limit.postinput": "秒内", "edit_post.time_limit_modal.option_label_time_limit.preinput": "可以编辑", "edit_post.time_limit_modal.save_button": "保存编辑时间", - "edit_post.time_limit_modal.subscript": "设定作者发布消息后可编辑的时限。", + "edit_post.time_limit_modal.subscript": "设置作者发布消息后可编辑的时限。", "edit_post.time_limit_modal.title": "设置全局编辑消息时限", "email_verify.almost": "即将完成!", "email_verify.failed": "验证邮件发送失败", "email_verify.notVerifiedBody": "请验证您的邮箱地址。检查您的收件箱中的邮件。", "email_verify.resend": "重新发送邮件", "email_verify.return": "返回登录", - "email_verify.sending": "正在发送电子邮件…", + "email_verify.sending": "正在发送邮件…", "email_verify.sent": "验证邮件已发送", "emoji_gif_picker.dialog.emojis": "表情符选择器", "emoji_gif_picker.dialog.gifs": "GIF 选择器", @@ -4577,19 +4577,19 @@ "error.local_storage.help1": "开启 cookies", "error.local_storage.help2": "关闭隐私浏览", "error.local_storage.help3": "使用一个支持的浏览器 (IE 11、Chrome 61+、火狐 60+、Safari 12+、Edge 42+)", - "error.local_storage.message": "Mattermost 无法加载因为您的浏览器设置禁止使用本地储存功能。请尝试以下操作以让 Mattermost 加载:", + "error.local_storage.message": "Mattermost 无法加载,因为您的浏览器设置禁止使用本地存储功能。请尝试以下操作以让 Mattermost 加载:", "error.local_storage.title": "无法加载 Mattermost", "error.magic_link_already_logged_in.message": "您已登录。请先退出,再重试。", - "error.magic_link_already_logged_in.title": "无法通过魔法链接为您登录", + "error.magic_link_already_logged_in.title": "无法通过登录链接为您登录", "error.not_found.message": "您访问的页面不存在", "error.not_found.title": "未找到页面", "error.oauth_access_denied": "您必须允许 Mattermost 登录 {service}。", "error.oauth_access_denied.title": "认证错误", "error.oauth_invalid_param.title": "OAuth 参数错误", - "error.oauth_missing_code": "服务提供商 {service} 没有在重转向网址中提供认证码。", - "error.oauth_missing_code.forum": "如果您已审阅以上步骤仍然有设定问题,您可以提交至 {link},我们很乐意协助您设定上问题。", + "error.oauth_missing_code": "服务提供商 {service} 未在重定向 URL 中提供认证码。", + "error.oauth_missing_code.forum": "如果您已审阅以上步骤仍然有设置问题,您可以提交至 {link},我们很乐意协助您设置上问题。", "error.oauth_missing_code.forum.link": "故障排除论坛", - "error.oauth_missing_code.gitlab": "对于 {link} 请确认已遵守设定说明。", + "error.oauth_missing_code.gitlab": "对于 {link} 请确认已遵守设置说明。", "error.oauth_missing_code.gitlab.link": "GitLab", "error.oauth_missing_code.google": "对于 {link} 请确认您的管理员已开启 Google+ API。", "error.oauth_missing_code.google.link": "Google Apps", @@ -4615,7 +4615,7 @@ "export_user_data_modal.export_data": "导出数据", "export_user_data_modal.export_data.table_filters_note": "注意:导出的数据将使用您在用户列表中的过滤器。如需导出所有数据,请先移除过滤器。", "export_user_data_modal.title": "导出用户数据", - "feature_restricted_modal.agreement": "选择免费试用 {trialLength} 天,表示我同意 Mattermost 软件评估协议隐私政策,并愿意接收产品相关的电子邮件。", + "feature_restricted_modal.agreement": "选择免费试用 {trialLength} 天,表示我同意 Mattermost 软件评估协议隐私政策,并愿意接收产品相关的邮件。", "feature_restricted_modal.button.notify": "通知管理员", "feature_restricted_modal.button.plans": "查看套餐", "feedback.cancelButton.text": "取消", @@ -4728,7 +4728,7 @@ "generic_icons.access_rules": "访问规则图标", "generic_icons.add": "添加图标", "generic_icons.add-mail": "添加邮件图标", - "generic_icons.add-reaction": "添加反应图标", + "generic_icons.add-reaction": "添加表情回应图标", "generic_icons.adminOnlyIcon": "管理员仅查看图标", "generic_icons.alert": "警报图标", "generic_icons.archive": "归档图标", @@ -4757,16 +4757,16 @@ "generic_icons.loading": "加载图标", "generic_icons.lock.circleSolid": "锁定圆圈实心图标", "generic_icons.login.gitlab": "Gitlab图标", - "generic_icons.login.google": "Google图标", + "generic_icons.login.google": "Google 图标", "generic_icons.login.openid": "OpenID 图标", - "generic_icons.logout": "注销图标", + "generic_icons.logout": "退出登录图标", "generic_icons.mail": "邮件图标", "generic_icons.mattermost": "Mattermost Logo", "generic_icons.member": "成员图标", "generic_icons.mention": "提及图标", "generic_icons.menu": "菜单图标", "generic_icons.next": "下一步图标", - "generic_icons.pin": "标注图标", + "generic_icons.pin": "固定图标", "generic_icons.plugin": "插件图标", "generic_icons.plugins": "插件", "generic_icons.preview": "眼睛图标", @@ -4774,9 +4774,9 @@ "generic_icons.reload": "重加载图标", "generic_icons.reply": "回复图标", "generic_icons.search": "搜索图标", - "generic_icons.settings": "设定图标", + "generic_icons.settings": "设置图标", "generic_icons.success": "成功图标", - "generic_icons.upgradeBadge": "升级徽章", + "generic_icons.upgradeBadge": "升级角标", "generic_icons.userGuide": "帮助", "generic_icons.user_groups": "用户群组图标", "generic_icons.warning": "警告图标", @@ -4801,7 +4801,7 @@ "get_link.clipboard": "链接已复制", "get_link.close": "关闭", "get_link.copy": "复制链接", - "get_public_link_modal.help": "以下链接允许任何人不需要在本服务器注册可查看此文件。", + "get_public_link_modal.help": "以下链接允许任何人无需在本服务器注册即可查看此文件。", "get_public_link_modal.title": "复制公开链接", "gif_picker.attribution.alt": "由 GIPHY 提供支持", "gif_picker.input.label": "搜索 GIF 图像", @@ -4814,10 +4814,10 @@ "globalThreads.sidebarLink": "话题", "globalThreads.threadList.noUnreadThreads": "没有未读话题", "globalThreads.threadList.noUnreadThreads.subtitle": "已全部查看完", - "globalThreads.threadPane.unreadMessageLink": "您有{numUnread, plural, =0 {没有未读会话} =1 {{numUnread} 个会话} other {{numUnread} 个会话}}{numUnread, plural, =0 {} other {含有未读消息}}", + "globalThreads.threadPane.unreadMessageLink": "您有{numUnread, plural, =0 {没有含未读消息的话题} =1 {{numUnread} 个含未读消息的话题} other {{numUnread} 个含未读消息的话题}}", "globalThreads.threadPane.unselectedTitle": "{numUnread, plural, =0 {看起来您已经赶上了} other {赶上您的话题}}", "globalThreads.title": "{prefix}话题 - {displayName} {siteName}", - "global_header.productSettings": "设定", + "global_header.productSettings": "设置", "global_header.productSwitchMenu": "产品切换菜单", "group_list_modal.addGroupButton": "添加群组", "group_list_modal.removeGroupButton": "移除组", @@ -4826,9 +4826,9 @@ "group_member_list.searchError": "获取结果时出了问题。清除搜索词并重试。", "group_member_list.sendMessageButton": "发送消息给 {user}", "group_member_list.sendMessageTooltip": "发送消息", - "guest_magic_link.success.description": "请查收你的邮箱,使用魔法链接免密码登录。", + "guest_magic_link.success.description": "请查收您的邮箱,使用登录链接免密码登录。", "guest_magic_link.success.expiry": "该链接将在五分钟后失效。", - "guest_magic_link.success.title": "魔法链接已发送至你的邮箱", + "guest_magic_link.success.title": "登录链接已发送至您的邮箱", "help.attaching.download.description": "通过点击文件缩略图旁的下载图标,或打开文件预览器后选择下载,即可下载附件文件。", "help.attaching.download.title": "下载文件", "help.attaching.drag.description": "将文件上传,或选择多个文件上传,可以直接将文件从您的计算机拖拽到右侧边栏或中间面板。拖放操作会将文件附加到消息输入框,您可以选择性地输入消息并按 ENTER 键发送。", @@ -4864,7 +4864,7 @@ "help.commands.example.code": "以代码块格式显示文本", "help.commands.example.collapse": "开启图片预览自动折叠", "help.commands.example.dnd": "请勿打扰可禁用桌面和移动端通知", - "help.commands.example.echo": "从您的账户回显文本", + "help.commands.example.echo": "从您的账号回显文本", "help.commands.example.header": "命令", "help.commands.intro": "您可以通过在文本输入框中输入命令(称为斜杠命令)来在 Mattermost 执行各种操作。要运行斜杠命令,请输入/,然后输入命令和相关参数来执行操作。", "help.commands.title": "执行命令", @@ -4898,7 +4898,7 @@ "help.formatting.lists.ordered": "要创建有序列表,请使用数字代替。", "help.formatting.lists.task": "通过添加方括号来创建任务列表。", "help.formatting.lists.title": "列表", - "help.formatting.style.description": "你可以在单词两侧加上 _* 来使其变为斜体。使用两个则可以使单词变为粗体。", + "help.formatting.style.description": "您可以在单词两侧加上 _* 来使其变为斜体。使用两个则可以使单词变为粗体。", "help.formatting.style.title": "文本样式", "help.formatting.syntax.description": "要添加语法高亮,请在代码块开头的```后输入需要高亮的语言名称。Mattermost 还提供四种不同的代码主题(GitHub、Solarized Dark、Solarized Light、Monokai),可以在设置 > 显示 > 主题 > 自定义主题 > 主频道样式 > 代码主题中进行更改。", "help.formatting.syntax.example_label": "示例:", @@ -4917,25 +4917,25 @@ "help.link.mentioning": "提及队友", "help.link.messaging": "消息基础", "help.link.sending": "发送消息", - "help.mentioning.channel.description": "你可以通过输入@channel来提及整个频道。频道中的所有成员都会收到一个提及通知,其效果与成员被单独提及时相同。", + "help.mentioning.channel.description": "您可以通过输入@channel来提及整个频道。频道中的所有成员都会收到一个提及通知,其效果与成员被单独提及时相同。", "help.mentioning.channel.title": "@频道", - "help.mentioning.keywords.description": "除了通过@用户名@channel收到通知外,你还可以自定义触发提及通知的关键词,路径为设置 > 通知 > 触发提及的关键词。默认情况下,你会在有人提及你的名字时收到通知,你还可以在输入框中用逗号分隔添加更多关键词。如果你希望关注某些主题的所有消息,例如“面试”或“市场营销”,这个功能会非常有用。", + "help.mentioning.keywords.description": "除了通过@用户名@channel收到通知外,您还可以自定义触发提及通知的关键词,路径为设置 > 通知 > 触发提及的关键词。默认情况下,您会在有人提及您的名字时收到通知,您还可以在输入框中用逗号分隔添加更多关键词。如果您希望关注某些主题的所有消息,例如“面试”或“市场营销”,这个功能会非常有用。", "help.mentioning.keywords.title": "触发提及的关键词", "help.mentioning.mentions.description": "使用 @提及 来引起特定团队成员的注意。", "help.mentioning.mentions.title": "@提及", - "help.mentioning.recent.description": "点击位于顶部栏右侧、你的头像旁边的@图标,可以查看你最近的 @提及 和触发提及的关键词。", + "help.mentioning.recent.description": "点击位于顶部栏右侧、您的头像旁边的@图标,可以查看您最近的 @提及 和触发提及的关键词。", "help.mentioning.recent.title": "最近的提及", "help.mentioning.title": "提及队友", - "help.mentioning.username.description": "你可以通过在@符号后加上队友的用户名来给他们发送提及通知。", + "help.mentioning.username.description": "您可以通过在@符号后加上队友的用户名来给他们发送提及通知。", "help.mentioning.username.description2": "输入@即可弹出可以被提及的团队成员列表。要筛选列表,可以输入任意用户名、名字、姓氏或昵称的前几个字母。然后可以使用上、下箭头键浏览列表,按 ENTER 选择要提及的用户。选中后,用户名会自动替换为全名或昵称。下面的示例会向 alice 发送一个特殊的提及通知,提醒她被提及的频道和消息。如果 alice 未登录 Mattermost 并启用了邮件通知,她还会收到一封带有消息内容的邮件提醒。", - "help.mentioning.username.not_in_channel": "如果你提及的用户不在该频道,系统会发送一条系统消息通知你。该消息仅会临时显示给触发操作的人。要将被提及用户添加到频道,请点击频道名称旁的下拉菜单,选择“添加成员”。", + "help.mentioning.username.not_in_channel": "如果您提及的用户不在该频道,系统会发送一条系统消息通知您。该消息仅会临时显示给触发操作的人。要将被提及用户添加到频道,请点击频道名称旁的下拉菜单,选择“添加成员”。", "help.mentioning.username.title": "@用户名", "help.messaging.attach.description": "拖拽文件到 Mattermost,或在文本输入框中点击附件图标。", "help.messaging.attach.title": "添加附件", - "help.messaging.emoji.description": "输入:可打开表情自动补全。如果内置表情无法表达你的意思,你也可以创建自己的自定义表情。", + "help.messaging.emoji.description": "输入:可打开表情自动补全。如果内置表情无法表达您的意思,您也可以创建自己的自定义表情。", "help.messaging.emoji.title": "添加表情", "help.messaging.formatting.description": "使用 Markdown 在消息中包含文本样式、标题、链接、表情、代码块、引用、表格、列表以及内嵌图片。以下表格展示了一些常用的格式化示例。", - "help.messaging.formatting.title": "格式化你的消息", + "help.messaging.formatting.title": "格式化您的消息", "help.messaging.notify.description": "输入@用户名来引起特定团队成员的注意。", "help.messaging.notify.title": "通知队友", "help.messaging.reply.description": "点击文本输入框旁的回复箭头图标。", @@ -4945,18 +4945,18 @@ "help.messaging.title": "消息基础", "help.messaging.write.description": "在 Mattermost 界面底部的文本输入框中编写消息。按 ENTER 发送消息。按 SHIFT+ENTER 可换行而不发送消息。", "help.messaging.write.title": "撰写消息", - "help.sending.delete.description": "要删除消息,请在你编写的任意消息文本旁边选择 更多操作 [...] 图标,然后选择 删除。系统管理员和团队管理员可以删除其系统或团队中的任何消息。", + "help.sending.delete.description": "要删除消息,请在您编写的任意消息文本旁边选择 更多操作 [...] 图标,然后选择 删除。系统管理员和团队管理员可以删除其系统或团队中的任何消息。", "help.sending.delete.title": "删除消息", - "help.sending.edit.description": "要编辑消息,请在你编写的任意消息文本旁边选择 更多操作 [...] 图标,然后选择 编辑。修改消息文本后,按 ENTER 保存更改。编辑消息不会触发新的 @提及通知、桌面通知或通知声音。", + "help.sending.edit.description": "要编辑消息,请在您编写的任意消息文本旁边选择 更多操作 [...] 图标,然后选择 编辑。修改消息文本后,按 ENTER 保存更改。编辑消息不会触发新的 @提及通知、桌面通知或通知声音。", "help.sending.edit.title": "编辑消息", "help.sending.link.description": "要获取消息的永久链接,请在任意消息旁边选择 更多操作 [...] 图标,然后选择 复制链接。用户必须是该频道的成员才能查看该消息链接。", "help.sending.link.title": "链接到消息", "help.sending.post.description": "在文本输入框中输入内容即可编写消息,按 ENTER 键发送。使用 SHIFT+ENTER 可以换行而不会发送消息。要通过 CTRL+ENTER 发送消息,请前往 设置 > 高级 > 使用 CTRL/CMD+ENTER 发送消息 进行设置。", "help.sending.post.title": "发送消息", "help.sending.title": "发送消息", - "help.sending.types.posts.description": "当消息开启了一条回复串时,该消息被视为父消息。消息可在中间面板底部的文本输入框中编辑并发送。", + "help.sending.types.posts.description": "当一条消息发起话题时,该消息会被视为父消息。可在中间面板底部的文本输入框中编辑并发送消息。", "help.sending.types.posts.title": "消息", - "help.sending.types.replies.description": "点击任意消息旁的回复图标,即可在右侧边栏打开该消息的线程进行回复。", + "help.sending.types.replies.description": "点击任意消息旁的回复图标,即可在右侧边栏打开该消息的话题进行回复。", "help.sending.types.replies.description2": "在撰写回复时,可点击右侧边栏右上角的展开侧边栏/折叠侧边栏图标,以便更清晰阅读对话内容。", "help.sending.types.replies.title": "回复", "help.sending.types.title": "消息类型", @@ -4978,11 +4978,11 @@ "installed_commands.search.empty": "未找到匹配{searchTerm}的斜杠命令", "installed_commands.unnamed_command": "未命名斜杠命令", "installed_incoming_webhooks.add": "添加传入 Webhook", - "installed_incoming_webhooks.delete.confirm": "此操作将永久删除此传入 webhook 并让使用它的所有集成无法工作。您确定要删除它吗?", - "installed_incoming_webhooks.empty": "未找到传入 webhook", - "installed_incoming_webhooks.emptySearch": "没有符合{searchTerm}的传入 webhook", + "installed_incoming_webhooks.delete.confirm": "此操作将永久删除此传入 Webhook 并让使用它的所有集成无法工作。您确定要删除它吗?", + "installed_incoming_webhooks.empty": "未找到传入 Webhook", + "installed_incoming_webhooks.emptySearch": "没有符合{searchTerm}的传入 Webhook", "installed_incoming_webhooks.header": "传入 Webhook", - "installed_incoming_webhooks.help": "使用传入 webhook 以连接外部工具到 Mattermost。{buildYourOwn} 或访问 {appDirectory} 以寻找自托管的第三方应用与集成。", + "installed_incoming_webhooks.help": "使用传入 Webhook 以连接外部工具到 Mattermost。{buildYourOwn} 或访问 {appDirectory} 以寻找自托管的第三方应用与集成。", "installed_incoming_webhooks.help.appDirectory": "应用目录", "installed_incoming_webhooks.help.buildYourOwn": "自己创建", "installed_incoming_webhooks.search": "搜索传入 Webhook", @@ -5007,10 +5007,10 @@ "installed_integrations.triggerWords": "触发关键词:{triggerWords}", "installed_integrations.unnamed_oauth_app": "未命名 OAuth 2.0 应用", "installed_integrations.unnamed_outgoing_oauth_connection": "未命名的对外 OAuth 连接", - "installed_integrations.url": "网址:{url}", - "installed_oauth2_apps.header": "OAuth 2.0 应用程序", + "installed_integrations.url": "URL:{url}", + "installed_oauth2_apps.header": "OAuth 2.0 应用", "installed_oauth_apps.add": "添加 OAuth 2.0 应用", - "installed_oauth_apps.callbackUrls": "回调网址(每行一个)", + "installed_oauth_apps.callbackUrls": "回调 URL(每行一个)", "installed_oauth_apps.cancel": "取消", "installed_oauth_apps.delete.confirm": "此操作将永久删除此 OAuth 2.0 应用并让使用它的所有集成无法工作。您确定要删除它吗?", "installed_oauth_apps.description": "描述", @@ -5023,7 +5023,7 @@ "installed_oauth_apps.help.appDirectory": "应用目录", "installed_oauth_apps.help.oauthApplications": "OAuth 2.0 应用", "installed_oauth_apps.homepage": "首頁", - "installed_oauth_apps.iconUrl": "图标网址", + "installed_oauth_apps.iconUrl": "图标 URL", "installed_oauth_apps.is_trusted": "受信任: ", "installed_oauth_apps.name": "显示名称", "installed_oauth_apps.public": "是否为公共客户端", @@ -5043,25 +5043,25 @@ "installed_outgoing_oauth_connections.empty": "未找到对外 OAuth 连接", "installed_outgoing_oauth_connections.emptySearch": "未找到匹配 {searchTerm} 的对外 OAuth 连接", "installed_outgoing_oauth_connections.header": "对外 OAuth 连接", - "installed_outgoing_oauth_connections.help": "创建{outgoingOauthConnections}以安全地集成机器人和其他第三方应用至 Mattermost。", + "installed_outgoing_oauth_connections.help": "创建 {outgoingOauthConnections} 以安全地将机器人和其他第三方应用集成到 Mattermost。", "installed_outgoing_oauth_connections.help.outgoingOauthConnections": "对外 OAuth 连接", "installed_outgoing_oauth_connections.password": "密码:********", "installed_outgoing_oauth_connections.search": "搜索对外 OAuth 连接", "installed_outgoing_oauth_connections.username": "用户名: ", "installed_outgoing_webhooks.add": "添加传出 Webhook", - "installed_outgoing_webhooks.delete.confirm": "此操作将永久删除此传出 webhook 并让使用它的所有集成无法工作。您确定要删除它吗?", - "installed_outgoing_webhooks.empty": "未找到传出 webhook", + "installed_outgoing_webhooks.delete.confirm": "此操作将永久删除此传出 Webhook 并让使用它的所有集成无法工作。您确定要删除它吗?", + "installed_outgoing_webhooks.empty": "未找到传出 Webhook", "installed_outgoing_webhooks.header": "传出 Webhook", - "installed_outgoing_webhooks.help": "使用传出 webhook 以连接外部工具到 Mattermost。{buildYourOwn} 或访问 {appDirectory} 以寻找自托管的第三方应用与集成。", + "installed_outgoing_webhooks.help": "使用传出 Webhook 以连接外部工具到 Mattermost。{buildYourOwn} 或访问 {appDirectory} 以寻找自托管的第三方应用与集成。", "installed_outgoing_webhooks.help.appDirectory": "应用目录", "installed_outgoing_webhooks.help.buildYourOwn": "创建您自己的", "installed_outgoing_webhooks.search": "搜索传出 Webhook", - "installed_outgoing_webhooks.search.empty": "未找到匹配{searchTerm}的传出 webhook", + "installed_outgoing_webhooks.search.empty": "未找到匹配{searchTerm}的传出 Webhook", "installed_outgoing_webhooks.unknown_channel": "私有 Webhook", "integrations.add": "添加", - "integrations.command.description": "发送事件到外部整合的斜杠命令", + "integrations.command.description": "发送事件到外部集成的斜杠命令", "integrations.command.title": "斜杠命令", - "integrations.copy_client_id": "复制 Client Id", + "integrations.copy_client_id": "复制 Client ID", "integrations.copy_client_secret": "复制 Client Secret", "integrations.copy_token": "复制令牌", "integrations.copy_url": "复制 URL", @@ -5073,13 +5073,13 @@ "integrations.header": "集成", "integrations.help": "访问 {appDirectory} 为 Mattermost 寻找自托管的第三方应用。", "integrations.help.appDirectory": "应用目录", - "integrations.incomingWebhook.description": "传入 webhook 允许外部集成发送消息", + "integrations.incomingWebhook.description": "传入 Webhook 允许外部集成发送消息", "integrations.incomingWebhook.title": "传入 Webhook", "integrations.oauthApps.description": "OAuth 2.0 允许外部应用向 Mattermost API 发出已授权的请求", "integrations.oauthApps.title": "OAuth 2.0 应用", "integrations.outgoingOAuthConnections.description": "对外 OAuth 连接允许自定义集成与外部系统通信", "integrations.outgoingOAuthConnections.title": "对外 OAuth 连接", - "integrations.outgoingWebhook.description": "传出 webhook 允许外部集成接收并响应消息", + "integrations.outgoingWebhook.description": "传出 Webhook 允许外部集成接收并响应消息", "integrations.outgoingWebhook.title": "传出 Webhook", "integrations.successful": "设置成功", "interactive_dialog.cancel": "取消", @@ -5098,7 +5098,7 @@ "interactive_dialog.lookup_failed": "查找失败", "interactive_dialog.refresh_failed": "字段刷新失败", "interactive_dialog.submission_failed": "提交失败", - "interactive_dialog.submit": "发送", + "interactive_dialog.submit": "提交", "interactive_dialog.submitting": "提交中…", "interactive_dialog.validation_failed": "对话框校验失败:{errors}", "intro_messages.DM": "这是您和{teammate}的私信记录的起点。这里的消息和共享的文件不会向其他人展示。", @@ -5118,7 +5118,7 @@ "intro_messages.noCreator": "建立于{date}的公共频道。", "intro_messages.noCreatorPrivate": "建立于{date}的私有频道。", "intro_messages.notificationPreferences": "通知", - "intro_messages.offTopic": "这是{display_name}的开端,一个非工作有关的会话。", + "intro_messages.offTopic": "这是{display_name}的开端,一个与工作无关的对话。", "intro_messages.onlyInvited": "这里是{display_name}的起点。只有受邀的成员才能看到此私有频道。", "intro_messages.purpose": " 此频道的用途为:{purpose}", "intro_messages.readonly.default": "欢迎来到{display_name}。只有系统管理员可以发表消息。所有人在加入团队时自动成为此频道的永久成员。", @@ -5157,7 +5157,7 @@ "invite_modal.add_channels_title_a": "添加到频道", "invite_modal.add_channels_title_member": "(可选)", "invite_modal.add_channels_title_nonmember": "(必填)", - "invite_modal.add_invites": "输入名称或电子邮件地址", + "invite_modal.add_invites": "输入名称或邮箱地址", "invite_modal.as": "邀请为", "invite_modal.choose_guest_a": "访客", "invite_modal.choose_guest_b": "仅限选择的频道和团队", @@ -5166,7 +5166,7 @@ "invite_modal.copy_link": "复制邀请链接", "invite_modal.copy_link.url_aria": "团队邀请链接 {inviteURL}", "invite_modal.example_channel": "例如{channel_name}", - "invite_modal.guest_magic_link": "允许受邀来宾使用魔法链接(免密码)登录", + "invite_modal.guest_magic_link": "允许受邀访客使用登录链接(免密码)登录", "invite_modal.guests": "访客", "invite_modal.invite": "邀请", "invite_modal.invited": "{inviteType} 被邀请到 {team_name}", @@ -5186,17 +5186,17 @@ "join_team_group_constrained_denied": "您必须是关联的组的成员才能加入此团队。", "join_team_group_constrained_denied_adminText": "您必须是关联的组的成员才能加入此团队。您可以在此处将一个组添加到此团队。", "katex.error": "无法编译您的 Latex 码。请检查语法后重试。", - "keep_remove_quarantined_content_modal.action_keep.body": "你即将保留由 {flaggedPostAuthor} 撰写、发布在 {flaggedPostChannel} 频道中并由 {reportingUser} 隔离以供审核的消息。", + "keep_remove_quarantined_content_modal.action_keep.body": "您即将保留由 {flaggedPostAuthor} 撰写、发布在 {flaggedPostChannel} 频道中并由 {reportingUser} 隔离以供审核的消息。", "keep_remove_quarantined_content_modal.action_keep.button_text": "保留消息", - "keep_remove_quarantined_content_modal.action_keep.subtext.no_notify_reporter": "如果你确认,该消息将对所有频道成员可见。", - "keep_remove_quarantined_content_modal.action_keep.subtext.notify_reporter": "如果你确认,该消息将对所有频道成员可见,并将向举报人发送通知。", + "keep_remove_quarantined_content_modal.action_keep.subtext.no_notify_reporter": "如果您确认,该消息将对所有频道成员可见。", + "keep_remove_quarantined_content_modal.action_keep.subtext.notify_reporter": "如果您确认,该消息将对所有频道成员可见,并将向举报人发送通知。", "keep_remove_quarantined_content_modal.action_keep.title": "保留消息", - "keep_remove_quarantined_content_modal.action_remove.body": "你即将移除由 {flaggedPostAuthor} 撰写、发布在 {flaggedPostChannel} 频道中并由 {reportingUser} 隔离以供审核的消息。", + "keep_remove_quarantined_content_modal.action_remove.body": "您即将移除由 {flaggedPostAuthor} 撰写、发布在 {flaggedPostChannel} 频道中并由 {reportingUser} 隔离以供审核的消息。", "keep_remove_quarantined_content_modal.action_remove.button_text": "移除消息", - "keep_remove_quarantined_content_modal.action_remove.subtext.no_notify_reporter": "如果你确认,该消息将从频道中移除。此操作无法撤销。", - "keep_remove_quarantined_content_modal.action_remove.subtext.notify_reporter": "如果你确认,该消息将从频道中移除,并将向举报人发送通知。此操作无法撤销。", + "keep_remove_quarantined_content_modal.action_remove.subtext.no_notify_reporter": "如果您确认,该消息将从频道中移除。此操作无法撤销。", + "keep_remove_quarantined_content_modal.action_remove.subtext.notify_reporter": "如果您确认,该消息将从频道中移除,并将向举报人发送通知。此操作无法撤销。", "keep_remove_quarantined_content_modal.action_remove.title": "从频道中移除消息", - "keep_remove_quarantined_content_modal.comment.placeholder": "在此添加你的备注", + "keep_remove_quarantined_content_modal.comment.placeholder": "在此添加您的备注", "keep_remove_quarantined_content_modal.comment_required.error": "请添加备注。", "last_users_message.added_to_channel.type": "被 {actor} **添加至此频道**。", "last_users_message.added_to_team.type": "被 {actor} **添加至此团队**。", @@ -5206,9 +5206,9 @@ "last_users_message.joined_team.type": "**加入了团队**。", "last_users_message.left_channel.type": "**离开了频道**。", "last_users_message.left_team.type": "**离开了团队**。", - "last_users_message.others": "其他 {numOthers} 人 ", - "last_users_message.removed_from_channel.type": "被**移出了此频道**。", - "last_users_message.removed_from_team.type": "被**移出了此团队**。", + "last_users_message.others": "{numOthers} 位其他人 ", + "last_users_message.removed_from_channel.type": "被**移出此频道**。", + "last_users_message.removed_from_team.type": "被**移出此团队**。", "learn_about_teams": "了解团队", "learn_more_about_trial.modal.ldapDescription": "使用 AD/LDAP 组对多个用户进行组织和应用操作。管理团队和频道成员资格、权限等。", "learn_more_about_trial.modal.ldapTitle": "同步您的 Active Directory/LDAP 组", @@ -5246,15 +5246,15 @@ "login.cardtitle.external": "使用以下之一进行登录:", "login.changed": "登录方式更改成功", "login.createTeam": "创建新团队", - "login.deactivatedUser": "你的账户已被停用。", - "login.defaultError": "我们无法让你登录。请输入你的信息后再试一次。", + "login.deactivatedUser": "您的账号已被停用。", + "login.defaultError": "我们无法让您登录。请输入您的信息后再试一次。", "login.email": "邮箱", "login.forgot": "忘记密码?", "login.get_terms_error": "无法加载服务条款。如果此问题持续,请联系您的系统管理员。", "login.gitlab": "GitLab", "login.google": "Google Apps", - "login.invalidCredentials": "电子邮件/用户名或密码无效。", - "login.invalidPassword": "您的密码是错误的。", + "login.invalidCredentials": "邮箱地址/用户名或密码无效。", + "login.invalidPassword": "您的密码不正确。", "login.ldapCreate": "输入您的 AD/LDAP 用户名和密码以创建账号。", "login.ldapUsername": "AD/LDAP 用户名", "login.ldapUsernameLower": "AD/LDAP 用户名", @@ -5301,8 +5301,8 @@ "managed_category.placeholder": "选择一个托管分类(可选)", "managed_category.placeholder_focused": "选择分类或输入一个新分类", "mark_all_threads_as_read_modal.confirm": "全部标记为已读", - "mark_all_threads_as_read_modal.description": "您的所有话题都将被标记为已读,且未读和提及徽章将被清除。您想继续吗?", - "mark_all_threads_as_read_modal.title": "将你的所有线程标记为已读", + "mark_all_threads_as_read_modal.description": "您的所有话题都将被标记为已读,且未读和提及角标将被清除。您想继续吗?", + "mark_all_threads_as_read_modal.title": "将您的所有话题标记为已读", "mark_as_read_confirm_modal.body": "您确定要将 {numChannels} 个频道标记为已读吗?", "mark_as_read_confirm_modal.confirm": "标记为已读", "mark_as_read_confirm_modal.header": "标记为已读", @@ -5416,8 +5416,8 @@ "move_thread_modal.preview.footer_message": "原发布于 ~{channelName}", "move_thread_modal.preview.title": "消息预览", "move_thread_modal.title": "移动话题", - "msg_typing.areTyping": "{users}和{last}正在输入…", - "msg_typing.isTyping": "{user}正在输入…", + "msg_typing.areTyping": "{users} 和 {last} 正在输入…", + "msg_typing.isTyping": "{user} 正在输入…", "multiselect.add": "添加", "multiselect.addChannelsPlaceholder": "搜索并添加频道", "multiselect.addGroupMembers": "添加 {number} 人", @@ -5453,7 +5453,7 @@ "navbar.preferences": "通知偏好", "navbar.toggle2": "切换侧栏", "navbar.toggle3": "切换右侧栏", - "navbar.viewPinnedPosts": "查看标注消息", + "navbar.viewPinnedPosts": "查看固定消息", "navbar_dropdown.about": "关于{appTitle}", "navbar_dropdown.accountSettings": "设置", "navbar_dropdown.addGroupsToTeam": "添加群组到团队", @@ -5474,7 +5474,7 @@ "navbar_dropdown.join": "加入另一个团队", "navbar_dropdown.leave": "离开团队", "navbar_dropdown.leave.icon": "离开团队图标", - "navbar_dropdown.logout": "注销", + "navbar_dropdown.logout": "退出登录", "navbar_dropdown.manageGroups": "管理群组", "navbar_dropdown.manageMembers": "成员管理", "navbar_dropdown.marketplace": "应用市场", @@ -5532,7 +5532,7 @@ "notify_admin_to_upgrade_cta.notify-admin.already_notified": "已经通知!", "notify_admin_to_upgrade_cta.notify-admin.failed": "稍后再试!", "notify_admin_to_upgrade_cta.notify-admin.notified": "管理员已通知!", - "notify_admin_to_upgrade_cta.notify-admin.notify": "通知你的管理员", + "notify_admin_to_upgrade_cta.notify-admin.notify": "通知您的管理员", "notify_admin_to_upgrade_cta.notify-admin.notifying": "正在通知…", "notify_all.confirm": "确认", "notify_all.title.confirm": "确认发送通知到整个频道", @@ -5541,16 +5541,16 @@ "numMembers": "{num, number} {num, plural, other {位成员}}", "onboardingTask.checklist.completed_subtitle": "希望现在对 Mattermost 更熟悉了。", "onboardingTask.checklist.completed_title": "干得好。您已完成所有任务!", - "onboardingTask.checklist.disclaimer": "点击“开始试用”,表示我同意 Mattermost 软件评估协议隐私政策,并愿意接收产品相关的电子邮件。", + "onboardingTask.checklist.disclaimer": "点击“开始试用”,表示我同意 Mattermost 软件评估协议隐私政策,并愿意接收产品相关的邮件。", "onboardingTask.checklist.dismiss_link": "不,谢谢,我自己会搞定", - "onboardingTask.checklist.downloads": "现在您已经设置好了,下载我们的应用程序。", + "onboardingTask.checklist.downloads": "现在您已经设置好了,下载我们的应用。", "onboardingTask.checklist.higher_security_features": "对我们的更高安全性功能感兴趣吗?", "onboardingTask.checklist.main_subtitle": "让我们开始吧。", "onboardingTask.checklist.no_thanks": "不,谢谢", "onboardingTask.checklist.start_enterprise_now": "立即开始免费企业试用!", "onboardingTask.checklist.start_onboarding_process": "开始引导流程。", "onboardingTask.checklist.task_complete_your_profile": "完善您的个人资料。", - "onboardingTask.checklist.task_download_mm_apps": "下载桌面和移动应用程序。", + "onboardingTask.checklist.task_download_mm_apps": "下载桌面和移动应用。", "onboardingTask.checklist.task_invite_team_members": "邀请团队成员加入工作空间。", "onboardingTask.checklist.task_learn_more_about_messaging": "参观频道的导览。", "onboardingTask.checklist.task_start_enterprise_trial": "深入了解企业级高安全性功能。", @@ -5560,11 +5560,11 @@ "onboardingTask.visitSystemConsole.Description": "在此处可以访问工作空间的更详细配置设置。", "onboardingTask.visitSystemConsole.title": "访问系统控制台", "onboardingTour.ChannelsAndDirectMessagesTour.channels": "频道是您与团队就某个话题或项目进行沟通的地方。", - "onboardingTour.ChannelsAndDirectMessagesTour.directMessages": "直接消息用于个人或小组之间的私密对话。", - "onboardingTour.ChannelsAndDirectMessagesTour.firstChannel": "嘿,看,这是你的 **{firstChannelName}** 频道! ", + "onboardingTour.ChannelsAndDirectMessagesTour.directMessages": "私信用于个人或小组之间的私密对话。", + "onboardingTour.ChannelsAndDirectMessagesTour.firstChannel": "嘿,看,这是您的 **{firstChannelName}** 频道! ", "onboardingTour.ChannelsAndDirectMessagesTour.title": "频道和私信消息", "onboardingTour.ChannelsAndDirectMessagesTour.townSquare": "我们也为您的团队中的每个人加入了{townSquare}{offTopic}频道。", - "onboardingTour.CreateAndJoinChannels.Description": "创建新频道或浏览可用频道以查看您的团队在讨论的话题。加入频道后,根据你的工作方式将它们归类。", + "onboardingTour.CreateAndJoinChannels.Description": "创建新频道或浏览可用频道以查看您的团队在讨论的话题。加入频道后,根据您的工作方式将它们归类。", "onboardingTour.CreateAndJoinChannels.title": "创建与加入频道", "onboardingTour.customizeYourExperience.Description": "设置您的工作时间,添加自定义状态,访问设置和您的个人资料以配置您的体验,包括通知偏好和自定义主题色。", "onboardingTour.customizeYourExperience.title": "自定义您的体验", @@ -5575,11 +5575,11 @@ "onboarding_wizard.invite_members.copied_link": "链接已复制", "onboarding_wizard.invite_members.copy_link": "复制链接", "onboarding_wizard.invite_members.copy_link_input": "团队邀请链接", - "onboarding_wizard.invite_members.description": "一个人协作很困难。邀请几位团队成员吧。请用逗号或分号分隔每个电子邮件地址。", + "onboarding_wizard.invite_members.description": "一个人协作很困难。邀请几位团队成员吧。请用逗号或分号分隔每个邮箱地址。", "onboarding_wizard.invite_members.description_link": "独自合作很困难。使用下面的邀请链接邀请一些团队成员。", "onboarding_wizard.invite_members.next": "发送邀请", "onboarding_wizard.invite_members.next_link": "完成设置", - "onboarding_wizard.invite_members.placeholder": "输入电子邮件地址", + "onboarding_wizard.invite_members.placeholder": "输入邮箱地址", "onboarding_wizard.invite_members.skip": "跳过", "onboarding_wizard.invite_members.title": "邀请您的团队成员", "onboarding_wizard.invite_members_cloud.title": "邀请您的团队成员", @@ -5589,7 +5589,7 @@ "onboarding_wizard.organization.description": "我们将使用此信息来帮助个性化您的工作区。", "onboarding_wizard.organization.empty": "您必须输入组织名称", "onboarding_wizard.organization.length": "组织名称必须在 {min} 到 {max} 个字符之间", - "onboarding_wizard.organization.other": "无效的组织名称:{reason}", + "onboarding_wizard.organization.other": "组织名称无效:{reason}", "onboarding_wizard.organization.placeholder": "组织名称", "onboarding_wizard.organization.reserved": "组织名称不能以保留字开头。", "onboarding_wizard.organization.team_api_error": "发生错误,请重试。", @@ -5617,11 +5617,11 @@ "password_form.pwd": "密码", "password_form.title": "密码重置", "password_send.checkInbox": "请检查您的收件箱。", - "password_send.description": "重置您的密码,输入您用于注册的邮箱地址", + "password_send.description": "要重置密码,请输入注册时使用的邮箱地址", "password_send.email": "邮箱", "password_send.email.placeholder": "输入您用于注册的邮箱地址", "password_send.error": "请输入一个有效的邮箱地址。", - "password_send.link": "如果账号存在,密码重置邮件将会被发送到:", + "password_send.link": "如果账号存在,密码重置邮件将发送至:", "password_send.reset": "重置我的密码", "password_send.title": "密码重置", "payment_form.address": "地址", @@ -5658,13 +5658,13 @@ "post.ariaLabel.attachmentMultiple": ",{attachmentCount} 个附件", "post.ariaLabel.message": "{time} {date},{authorName}写到:{message}", "post.ariaLabel.messageIsFlagged": ",消息已保存", - "post.ariaLabel.messageIsFlaggedAndPinned": ",消息已保存并标注", - "post.ariaLabel.messageIsPinned": ",消息已被标注", - "post.ariaLabel.reaction": ",1 个反应", - "post.ariaLabel.reactionMultiple": ",{reactionCount} 个反应", + "post.ariaLabel.messageIsFlaggedAndPinned": ",消息已保存并固定", + "post.ariaLabel.messageIsPinned": ",消息已被固定", + "post.ariaLabel.reaction": ",1 个表情回应", + "post.ariaLabel.reactionMultiple": ",{reactionCount} 个表情回应", "post.ariaLabel.replyMessage": "{time} {date},{authorName}回复到:{message}", "post.ariaLabel.translated": ",从{sourceLanguage}翻译为{targetLanguage}", - "post.burn_on_read.confirmation_modal.body_receiver": "此消息将立即为你永久删除,且无法恢复。", + "post.burn_on_read.confirmation_modal.body_receiver": "此消息将立即为您永久删除,且无法恢复。", "post.burn_on_read.confirmation_modal.body_sender": "此消息将立即为所有接收者永久删除,且无法恢复。确定要删除此消息吗?", "post.burn_on_read.confirmation_modal.cancel": "取消", "post.burn_on_read.confirmation_modal.checkbox": "不再提示", @@ -5672,7 +5672,7 @@ "post.burn_on_read.confirmation_modal.deleting": "正在删除…", "post.burn_on_read.confirmation_modal.title": "现在删除消息吗?", "post.burn_on_read.reveal_error": "无法显示消息内容。请稍后再试。", - "post.burn_on_read.reveal_error.forbidden": "你没有权限查看此消息。", + "post.burn_on_read.reveal_error.forbidden": "您没有权限查看此消息。", "post.burn_on_read.reveal_error.generic": "显示消息内容失败。请重试。", "post.burn_on_read.reveal_error.not_found": "此消息已不存在。", "post.burn_on_read.timer.aria_label": "阅后即焚计时器:{time}。点击立即删除。", @@ -5691,15 +5691,15 @@ "post.renderError.retryLabel": "重新尝试渲染这条信息", "post_body.check_for_out_of_channel_groups_mentions.message": "未被此提及通知,因为他们不在此频道。他们无法被添加到此频道,因为他们不是关联的组的成员。他们必须被添加到关联的组才能被添加到此频道。", "post_body.check_for_out_of_channel_mentions.link.and": " 以及 ", - "post_body.check_for_out_of_channel_mentions.link.private": "添加他们到此私有频道", + "post_body.check_for_out_of_channel_mentions.link.private": "将他们添加到此私有频道", "post_body.check_for_out_of_channel_mentions.link.public": "添加他们到频道", "post_body.check_for_out_of_channel_mentions.message.multiple": "未收到此提及因为他们不在此频道。您是否想要 ", "post_body.check_for_out_of_channel_mentions.message.one": "未收到此提及因为他们不在此频道。您是否想要 ", - "post_body.check_for_out_of_channel_mentions.message_last": "? 他们将可以查看所有消息历史。", + "post_body.check_for_out_of_channel_mentions.message_last": "吗?他们将可以查看所有消息历史记录。", "post_body.check_for_out_of_channel_mentions.others": "其他 {numOthers} 位", "post_body.commentedOn": "评论了 {name} 的消息: ", "post_body.commentedOn.loadingMessage": "正在加载…", - "post_body.deleted": "(消息被删除)", + "post_body.deleted": "(消息已删除)", "post_body.plusMore": " 以及其他 {count, number} {count, plural, other {个文件}}", "post_card.channel_property.deleted_channel": "已删除频道 ID:{channelId}", "post_card.channel_property.deleted_team": "已删除团队 ID:{teamId}", @@ -5730,14 +5730,14 @@ "post_info.edit.undo": "撤销", "post_info.info.view_additional_info": "查看更多信息", "post_info.marketplace": "应用市场", - "post_info.menuAriaLabel": "消息附加设定", + "post_info.menuAriaLabel": "消息附加设置", "post_info.message.show_less": "显示更少", "post_info.message.show_more": "显示更多", "post_info.message.visible": "(只有您可见)", "post_info.message.visible.compact": " (只有您可见)", "post_info.move_thread": "移动话题", "post_info.permalink": "复制链接", - "post_info.pin": "标注至频道", + "post_info.pin": "固定至频道", "post_info.post_reminder.menu": "提醒", "post_info.post_reminder.sub_menu.custom": "自定义", "post_info.post_reminder.sub_menu.header": "设置此时间后的提醒:", @@ -5752,20 +5752,20 @@ "post_info.submenu.mobile": "移动设备子菜单", "post_info.system": "系统", "post_info.tooltip.actions": "消息操作", - "post_info.tooltip.add_reactions": "添加反应", + "post_info.tooltip.add_reactions": "添加表情回应", "post_info.translation_icon": "此消息已被翻译", "post_info.translation_icon.hint": "点击以查看原文", "post_info.translation_icon.title": "已自动翻译", "post_info.translation_icon_processing": "翻译中…", "post_info.translation_icon_unavailable": "翻译不可用", - "post_info.unpin": "从频道取消标注", + "post_info.unpin": "从频道取消固定", "post_info.unread": "标为未读", "post_message_preview.channel": "只对 ~{channel} 中的用户可见", - "post_message_view.edited": "已编辑", + "post_message_view.edited": "(已编辑)", "post_message_view.view_post_edit_history": "点击查看历史记录", "post_pre_header.flagged": "已保存", - "post_pre_header.pinned": "已标注", - "post_priority.acknowledgements.title": "致谢", + "post_pre_header.pinned": "已固定", + "post_priority.acknowledgements.title": "确认", "post_priority.button.acknowledge": "确认", "post_priority.error.no_mentions": "接收者必须被 @ 提及", "post_priority.error.special_mentions": "{mention} 不能与持久通知一起使用", @@ -5828,8 +5828,8 @@ "public_private_selector.private.title": "私有", "public_private_selector.public.description": "任何人", "public_private_selector.public.title": "公共", - "quarantine_message_modal.comment.placeholder": "描述你的担忧…", - "quarantine_message_modal.empty_comment_error": "请添加备注说明你为何要隔离此消息。", + "quarantine_message_modal.comment.placeholder": "描述您的担忧…", + "quarantine_message_modal.empty_comment_error": "请添加备注说明您为何要隔离此消息。", "quarantine_message_modal.flag_reason.title": "隔离此消息的原因", "quarantine_message_modal.heading": "隔离以供审核", "quarantine_message_modal.optional_comment.title": "备注(可选)", @@ -5844,22 +5844,22 @@ "quick_switch_modal.switchChannels": "查找频道", "reaction.a11y.clickToAdd": "点击以添加。", "reaction.a11y.clickToRemove": "点击以移除。", - "reaction.add.ariaLabel": "添加反应", + "reaction.add.ariaLabel": "添加表情回应", "reaction.clickToAdd": "(点击添加)", "reaction.clickToRemove": "(点击删除)", - "reaction.container.ariaLabel": "反应", + "reaction.container.ariaLabel": "表情回应", "reaction.othersReacted": "{otherUsers, number} {otherUsers, plural, other {位用户}}", "reaction.reacted": "{users} {reactionVerb}为 {emoji}", - "reaction.reactionVerb.user": "的反应", - "reaction.reactionVerb.users": "的反应", - "reaction.reactionVerb.you": "的反应", - "reaction.reactionVerb.youAndUsers": "的反应", + "reaction.reactionVerb.user": "的表情回应", + "reaction.reactionVerb.users": "的表情回应", + "reaction.reactionVerb.you": "的表情回应", + "reaction.reactionVerb.youAndUsers": "的表情回应", "reaction.usersAndOthersReacted": "{users} 以及其他 {otherUsers, number} {otherUsers, plural, other {位用户}}", "reaction.usersReacted": "{users} 以及 {lastUser}", "reaction.you": "您", - "reaction_limit_reached_modal.body": "哎呀!看来我们达到此消息的表情符反应上限了。请联系您的系统管理员以调整此限制。", - "reaction_limit_reached_modal.body.admin": "哎呀!看来我们达到此消息的表情符反应上限了。我们对此设置了限制以保持您的服务器运行流畅。作为系统管理员,您可以在系统控制台中调整此限制。", - "reaction_limit_reached_modal.title": "您已达到反应上限", + "reaction_limit_reached_modal.body": "哎呀!看来我们达到此消息的表情回应上限了。请联系您的系统管理员以调整此限制。", + "reaction_limit_reached_modal.body.admin": "哎呀!看来我们达到此消息的表情回应上限了。我们对此设置了限制以保持您的服务器运行流畅。作为系统管理员,您可以在系统控制台中调整此限制。", + "reaction_limit_reached_modal.title": "您已达到表情回应上限", "recaps.actionItems": "操作项:", "recaps.addRecap": "添加回顾", "recaps.addRecap.disabled": "Agents Bridge 未启用", @@ -5868,8 +5868,8 @@ "recaps.delete.confirm.button": "删除", "recaps.delete.confirm.message": "确定要删除{title}吗?此操作无法撤销。", "recaps.delete.confirm.title": "删除回顾?", - "recaps.emptyState.description": "你还没有任何回顾。创建一个回顾以开始。", - "recaps.emptyState.title": "你已全部处理完毕", + "recaps.emptyState.description": "您还没有任何回顾。创建一个回顾以开始。", + "recaps.emptyState.title": "您已全部处理完毕", "recaps.generatedBy": "由 {agentName} 生成", "recaps.highlights": "重点摘要", "recaps.markRead": "标为已读", @@ -5881,29 +5881,29 @@ "recaps.messageCount": "已回顾 {count} 条消息", "recaps.modal.allChannels": "所有频道", "recaps.modal.allUnreads": "汇总我所有未读内容", - "recaps.modal.allUnreadsDesc": "创建一份你在各个频道中所有未读消息的汇总。", + "recaps.modal.allUnreadsDesc": "创建一份您在各个频道中所有未读消息的汇总。", "recaps.modal.error.createFailed": "创建回顾失败,请重试。", "recaps.modal.error.noBot": "请选择一个 AI 代理。", "recaps.modal.error.noChannels": "请至少选择一个频道。", - "recaps.modal.nameLabel": "请为你的回顾命名", - "recaps.modal.namePlaceholder": "请为你的回顾输入名称", + "recaps.modal.nameLabel": "请为您的回顾命名", + "recaps.modal.namePlaceholder": "请为您的回顾输入名称", "recaps.modal.nameRequired": "此字段为必填项", "recaps.modal.noChannels": "未找到频道", "recaps.modal.noUnreadsAvailable": "暂无未读频道", - "recaps.modal.noUnreadsAvailableHint": "你当前在所有频道都没有未读消息", + "recaps.modal.noUnreadsAvailableHint": "您当前在所有频道都没有未读消息", "recaps.modal.recommended": "推荐", - "recaps.modal.selectChannels": "请选择你想要包含的频道", + "recaps.modal.selectChannels": "请选择您想要包含的频道", "recaps.modal.selectedChannels": "回顾所选频道", "recaps.modal.selectedChannelsDesc": "请选择希望包含在回顾中的频道", "recaps.modal.startRecap": "开始生成回顾", "recaps.modal.summaryTitle": "以下频道将包含在本次回顾中", - "recaps.modal.title": "设置你的回顾", - "recaps.modal.typeLabel": "你希望哪种类型的回顾?", + "recaps.modal.title": "设置您的回顾", + "recaps.modal.typeLabel": "您希望哪种类型的回顾?", "recaps.placeholder.createRecap": "创建摘要", - "recaps.placeholder.description": "摘要可通过汇总报告帮助你快速跟进对你最重要的讨论。", - "recaps.placeholder.title": "设置你的摘要", - "recaps.processing.message": "我们正在生成你的回顾,请稍候返回查看", - "recaps.processing.subtitle": "回顾已创建,你很快会收到摘要", + "recaps.placeholder.description": "摘要可通过汇总报告帮助您快速跟进对您最重要的讨论。", + "recaps.placeholder.title": "设置您的摘要", + "recaps.processing.message": "我们正在生成您的回顾,请稍候返回查看", + "recaps.processing.subtitle": "回顾已创建,您很快会收到摘要", "recaps.readTab": "已读", "recaps.sidebarLink": "回顾", "recaps.status.failed": "失败", @@ -5926,14 +5926,14 @@ "restricted_indicator.tooltip.mesage": "在试用期间,您可以使用此功能。", "restricted_indicator.tooltip.message.blocked": "这是一个付费功能,可在免费的 {trialLength} 天试用期内使用", "restricted_indicator.tooltip.title": "{minimumPlanRequiredForFeature} 功能", - "revoke_user_sessions_modal.desc": "此操作将吊销 {username} 的所有会话。他们从所有设备退出。您确定要吊销 {username} 的所有会话吗?", + "revoke_user_sessions_modal.desc": "此操作将吊销 {username} 的所有会话。该用户将从所有设备退出登录。您确定要吊销 {username} 的所有会话吗?", "revoke_user_sessions_modal.revoke": "吊销", "revoke_user_sessions_modal.title": "吊销 {username} 的会话", "rhs_card.jump": "跳转", "rhs_card.message_by": "{avatar} {user} 的消息", "rhs_header.back.icon": "返回图标", "rhs_header.backToFlaggedTooltip": "回到保存的消息", - "rhs_header.backToPinnedTooltip": "回到标注的消息", + "rhs_header.backToPinnedTooltip": "回到固定的消息", "rhs_header.backToResultsTooltip": "回到搜索结果", "rhs_header.closeSidebarTooltip": "关闭", "rhs_header.closeTooltip.icon": "关闭侧栏图标", @@ -5943,7 +5943,7 @@ "rhs_header.expandSidebarTooltip": "展开右侧栏", "rhs_header.expandSidebarTooltip.icon": "展开侧栏图标", "rhs_plugin_popout.title": "{pluginDisplayName} - {serverName}", - "rhs_root.mobile.add_reaction": "添加反应", + "rhs_root.mobile.add_reaction": "添加表情回应", "rhs_root.mobile.flag": "保存消息", "rhs_root.mobile.unflag": "从保存移除", "rhs_search_popout.title.channel_files": "频道文件 - {channelName} - {serverName}", @@ -5982,14 +5982,14 @@ "scheduled_post.delete_modal.title": "删除计划消息", "scheduled_post.error_code.channel_archived": "频道已归档", "scheduled_post.error_code.channel_removed": "频道已移除", - "scheduled_post.error_code.invalid_post": "无效消息", + "scheduled_post.error_code.invalid_post": "消息无效", "scheduled_post.error_code.no_channel_member": "不在频道中", - "scheduled_post.error_code.no_channel_permission": "缺少权限", + "scheduled_post.error_code.no_channel_permission": "权限不足", "scheduled_post.error_code.thread_deleted": "话题已删除", "scheduled_post.error_code.unable_to_send": "无法发送", "scheduled_post.error_code.unknown_error": "未知错误", - "scheduled_post.error_code.user_deleted": "用户已删除", - "scheduled_post.error_code.user_missing": "用户已删除", + "scheduled_post.error_code.user_deleted": "已删除用户", + "scheduled_post.error_code.user_missing": "已删除用户", "scheduled_post.panel.error_indicator.message": "您的其中一条计划草稿无法发送。", "scheduled_post.panel.header.time": "{scheduledDateTime}{isTodayOrTomorrow, select, other { }}发送", "scheduled_posts.row_title_channel.placeholder": "位于:{icon} 无目标", @@ -6037,7 +6037,7 @@ "search_hint.filter": "过滤您的搜索:", "search_item.channelArchived": "已归档", "search_item.direct": "私信 (与 {username})", - "search_item.file_tag.direct_message": "直接消息", + "search_item.file_tag.direct_message": "私信", "search_item.file_tag.group_message": "群组消息", "search_item.jump": "跳转", "search_item.thread": "{channel}中的话题", @@ -6064,7 +6064,7 @@ "self_hosted_signup.error_max_seats": " 许可证购买仅支持最多 {num} 个席位的购买", "self_hosted_signup.error_min_seats": "您的工作区目前有 {num} 个用户", "self_hosted_signup.line_item_subtotal": "{num} 个席位 × 12 个月。", - "self_hosted_signup.screening_description": "一旦您的许可证获得批准,我们将在3天内检查并与您联系。在此期间,请继续使用我们产品的免费版本。", + "self_hosted_signup.screening_description": "一旦您的许可证获得批准,我们将在3 天内检查并与您联系。在此期间,请继续使用我们产品的免费版本。", "self_hosted_signup.screening_title": "您的交易正在审核中", "self_hosted_signup.seats": "席位", "self_hosted_signup.signup_consequences": "您将在今天被收费。您的许可证将自动应用。查看计费方式。", @@ -6131,8 +6131,8 @@ "shortcuts.msgs.comp.channel": "频道:\t~|[a-z]|Tab", "shortcuts.msgs.comp.emoji": "表情符:\t:|[a-z]|Tab", "shortcuts.msgs.comp.header": "自动补全", - "shortcuts.msgs.comp.last_reaction": "对上一条消息添加反应:\tCtrl|Shift|⧵", - "shortcuts.msgs.comp.last_reaction.mac": "对上一条消息添加反应:\t⌘|Shift|⧵", + "shortcuts.msgs.comp.last_reaction": "对上一条消息添加表情回应:\tCtrl|Shift|⧵", + "shortcuts.msgs.comp.last_reaction.mac": "对上一条消息添加表情回应:\t⌘|Shift|⧵", "shortcuts.msgs.comp.username": "用户名:\t@|[a-z]|Tab", "shortcuts.msgs.edit": "编辑频道中的上一条消息:\tUp", "shortcuts.msgs.formatting_bar.more_formatting_options": "更多格式选项", @@ -6191,8 +6191,8 @@ "shortcuts.nav.prev.mac": "上一个频道:\t⌥|Up", "shortcuts.nav.recent_mentions": "最近提及:\tCtrl|Shift|M", "shortcuts.nav.recent_mentions.mac": "最近提及:\t⌘|Shift|M", - "shortcuts.nav.settings": "设定:\tCtrl|Shift|A", - "shortcuts.nav.settings.mac": "设定:\t⌘|Shift|A", + "shortcuts.nav.settings": "设置:\tCtrl|Shift|A", + "shortcuts.nav.settings.mac": "设置:\t⌘|Shift|A", "shortcuts.nav.switcher": "快速频道导航:\tCtrl|K", "shortcuts.nav.switcher.mac": "快速频道导航:\t⌘|K", "shortcuts.nav.toggle_unreads": "切换未读/所有频道:\tCtrl|Shift|U", @@ -6302,7 +6302,7 @@ "sidebar_left.sidebar_channel_modal.select_team_placeholder": "选择团队", "sidebar_left.sidebar_channel_modal.warning_body": "您即将将与 {memberNames} 的群组消息转换为频道。此操作无法撤销。", "sidebar_left.sidebar_channel_modal.warning_body_yourself": "您自己", - "sidebar_left.sidebar_channel_modal.warning_header": "会话历史将对所有频道成员可见", + "sidebar_left.sidebar_channel_modal.warning_header": "对话历史将对所有频道成员可见", "sidebar_left.sidebar_channel_navigator.inviteUsers": "邀请用户", "sidebar_right_menu.console": "系统控制台", "sidebar_right_menu.flagged": "保存的消息", @@ -6316,8 +6316,8 @@ "signup_team.no_open_teams": "没有可加入的团队。请联系您的管理员询问邀请。", "signup_team.no_open_teams_canCreate": "没有可加入的团队。请创建个新的团队或联系您的管理员询问邀请。", "signup_team_system_console": "转到系统控制台", - "signup_user_completed.cardtitle": "创建您的账户", - "signup_user_completed.cardtitle.external": "使用以下方式之一创建您的账户:", + "signup_user_completed.cardtitle": "创建您的账号", + "signup_user_completed.cardtitle.external": "使用以下方式之一创建您的账号:", "signup_user_completed.chooseUser": "选择用户名", "signup_user_completed.create": "创建账号", "signup_user_completed.emailIs": "您将使用此地址登录到{siteName}。", @@ -6327,7 +6327,7 @@ "signup_user_completed.invalid_invite.message": "请与您的管理员联系以获取邀请。", "signup_user_completed.invalid_invite.title": "此邀请链接无效", "signup_user_completed.no_open_server.title": "此服务器不允许开放注册", - "signup_user_completed.or": "或者使用以下方式之一创建账户", + "signup_user_completed.or": "或者使用以下方式之一创建账号", "signup_user_completed.required": "此字段为必填", "signup_user_completed.reserved": "此用户名为预留,请选择一个新的。", "signup_user_completed.return": "返回登录", @@ -6339,7 +6339,7 @@ "signup_user_completed.usernameLength": "用户名必须小写字母开头并且为 {min}-{max} 字符长。您可以使用小写字母、数字、句号、破折号以及下划线。", "signup_user_completed.validEmail": "请输入一个有效的邮箱地址", "single_channel_guest_limit_banner.cta": "联系销售", - "single_channel_guest_limit_banner.message": "你的工作区已达到单频道访客上限", + "single_channel_guest_limit_banner.message": "您的工作区已达到单频道访客上限", "single_image_view.copied_link_tooltip": "已复制", "single_image_view.copy_link_tooltip": "复制链接", "single_image_view.download_tooltip": "下载", @@ -6350,11 +6350,11 @@ "start_trial.modal.gettingTrial": "正在获取试用…", "start_trial.modal.loaded": "已加载!", "start_trial.modal.loading": "加载中…", - "start_trial.tutorialTip.desc": "探索我们最受欢迎的高级功能。使用访客账户确定用户访问权限,自动化合规报告,并发送仅包含安全身份的移动推送通知。", + "start_trial.tutorialTip.desc": "探索我们最受欢迎的高级功能。使用访客账号确定用户访问权限,自动化合规报告,并发送仅包含安全身份的移动推送通知。", "start_trial.tutorialTip.title": "免费尝试我们的高级功能", "start_trial_form.company_name": "公司名称", "start_trial_form.company_size": "公司规模", - "start_trial_form.disclaimer": "选择开始试用,表示我同意 Mattermost 软件评估协议隐私政策,并愿意接收产品相关的电子邮件。", + "start_trial_form.disclaimer": "选择开始试用,表示我同意 Mattermost 软件评估协议隐私政策,并愿意接收产品相关的邮件。", "start_trial_form.email": "企业邮箱", "start_trial_form.invalid_business_email": "请输入有效的企业邮箱地址。", "start_trial_form.modal_body": "只需几个简单的步骤,帮助我们为您量身定制试用体验。", @@ -6389,7 +6389,7 @@ "suggestion.private": "私有频道", "suggestion.private_channel": "私有频道", "suggestion.public": "公共频道", - "suggestion.public_channel": "公开频道", + "suggestion.public_channel": "公共频道", "suggestion.search.direct": "私信", "suggestion.search.group": "群组提及", "suggestion.search.private": "私有频道", @@ -6421,7 +6421,7 @@ "team_groups": "{team} 群组", "team_member_modal.invitePeople": "邀请人员", "team_member_modal.members": "{team}成员", - "team_members_dropdown.confirmDemoteDescription": "如果你从系统管理员身份降级且没有另一个用户有系统管理员权限,你需要通过一个终端访问 Mattermost 服务器并运行以下命令来重新指定一个系统管理员。", + "team_members_dropdown.confirmDemoteDescription": "如果您从系统管理员身份降级且没有另一个用户有系统管理员权限,您需要通过一个终端访问 Mattermost 服务器并运行以下命令来重新指定一个系统管理员。", "team_members_dropdown.confirmDemoteRoleTitle": "确认从系统管理身份降级", "team_members_dropdown.confirmDemotion": "确认降级", "team_members_dropdown.confirmDemotionCmd": "platform roles system_admin {username}", @@ -6455,9 +6455,9 @@ "team_settings.policy_editor.error.channels_required": "请为策略至少分配一个频道", "team_settings.policy_editor.error.incomplete_rule": "请为所有属性规则填写一个值", "team_settings.policy_editor.error.no_channels_delete_hint": "移除所有频道以删除,或撤销以保留该策略。", - "team_settings.policy_editor.error.self_exclusion": "你无法保存这些规则,因为它们会移除你对此策略的访问权限。请调整规则以包含你的用户属性。", + "team_settings.policy_editor.error.self_exclusion": "您无法保存这些规则,因为它们会移除您对此策略的访问权限。请调整规则以包含您的用户属性。", "team_settings.policy_editor.error.validation_failed": "验证访问规则失败。请重试。", - "team_settings.policy_editor.name_hint": "为你的策略指定一个名称,用于在策略列表中标识它。", + "team_settings.policy_editor.name_hint": "为您的策略指定一个名称,用于在策略列表中标识它。", "team_settings.policy_editor.name_label": "成员策略名称", "team_settings.policy_editor.name_placeholder": "添加一个唯一的策略名称", "team_settings.policy_editor.name_required": "策略名称为必填项。", @@ -6500,7 +6500,7 @@ "texteditor.rewrite.fixSpelling": "修正拼写与语法", "texteditor.rewrite.improveWriting": "改善写作", "texteditor.rewrite.menu": "改写选项", - "texteditor.rewrite.nextPrompt": "你希望 AI 接下来做什么?", + "texteditor.rewrite.nextPrompt": "您希望 AI 接下来做什么?", "texteditor.rewrite.placeholder.rewriting": "正在重写…", "texteditor.rewrite.prompt": "让 AI 编辑消息…", "texteditor.rewrite.regenerate": "重新生成", @@ -6510,25 +6510,25 @@ "texteditor.rewrite.stopGenerating": "停止生成", "texteditor.rewrite.summarize": "总结", "thread_popout.title": "话题 - {channelName} - {teamName} - {serverName}", - "thread_popout.title.dm": "消息串 - {channelName} - {serverName}", + "thread_popout.title.dm": "话题 - {channelName} - {serverName}", "threading.filters.unreads": "未读", "threading.following": "关注中", "threading.footer.lastReplyAt": "最后回复 {formatted}", "threading.header.heading": "话题", "threading.notFollowing": "关注", - "threading.numNewMessages": "{newReplies, plural, =0 {没有未读邮件} =1 {一条未读消息} other {# 条未读消息}}", + "threading.numNewMessages": "{newReplies, plural, =0 {没有未读消息} =1 {一条未读消息} other {# 条未读消息}}", "threading.numNewReplies": "{newReplies, plural, other {# 条新回复}}", "threading.numReplies": "{totalReplies, plural, =0 {回复} other {# 条回复}}", "threading.threadHeader.menu": "更多操作", "threading.threadItem.ariaLabel": "{author} 创建的话题", "threading.threadItem.timestamp": "上次回复 ", - "threading.threadList.markRead": "标记所有话题为已读", + "threading.threadList.markRead": "将所有话题标记为已读", "threading.threadList.tabsLabel": "过滤可见话题", "threading.threadMenu.copy": "复制链接", "threading.threadMenu.follow": "关注话题", "threading.threadMenu.followExtra": "您将收到有关回复的通知", "threading.threadMenu.followMessage": "关注消息", - "threading.threadMenu.followed": "已关注的帖子串", + "threading.threadMenu.followed": "已关注的话题", "threading.threadMenu.linkCopied": "链接已复制", "threading.threadMenu.markRead": "标记为已读", "threading.threadMenu.markUnread": "标记为未读", @@ -6541,7 +6541,7 @@ "threading.threadMenu.unfollow": "取消关注话题", "threading.threadMenu.unfollowExtra": "您将不会收到有关回复的通知", "threading.threadMenu.unfollowMessage": "取消关注消息", - "threading.threadMenu.unfollowed": "已取消关注帖子串", + "threading.threadMenu.unfollowed": "已取消关注话题", "threading.threadMenu.unsave": "未保存", "threading.threadMenu.unsaved": "已取消保存", "three_days_left_trial.modal.ldapDescription": "使用 AD/LDAP 组来组织并同时对多个用户应用操作。管理团队和频道成员、权限等。", @@ -6596,7 +6596,7 @@ "update_outgoing_oauth_connection.confirm": "编辑对外 OAuth 连接", "update_outgoing_oauth_connection.question": "您的更改可能会破坏正在使用此连接的现有集成。您确定要更新吗?", "update_outgoing_webhook.confirm": "修改传出 Webhook", - "update_outgoing_webhook.question": "您的修改可能破坏现有的传出 webhook。您确定要更新吗?", + "update_outgoing_webhook.question": "您的修改可能破坏现有的传出 Webhook。您确定要更新吗?", "update_outgoing_webhook.update": "更新", "upgradeLink.warn.upgrade_now": "立刻升级", "upgrade_export_data_modal.desc": "轻松导出详细数据报告,方便分析用户统计数据。 升级到专业版套餐以获得对数据导出的访问。", @@ -6605,14 +6605,14 @@ "upload_overlay.info": "拖动文件上传。", "url_input.buttonLabel.done": "完成", "url_input.buttonLabel.edit": "编辑", - "url_input.label.url": "网址: ", + "url_input.label.url": "URL: ", "user.settings.advance.confirmDeactivateAccountTitle": "确认停用", "user.settings.advance.confirmDeactivateDesc": "您确认要停用您的账号吗?只有您的系统管理员可以撤销此操作。", "user.settings.advance.deactivateAccountTitle": "停用账号", "user.settings.advance.deactivateDesc": "停用您的账号将使您无法再次登录服务器并禁用所有邮件和手机推送。如想重新激活您的账号,请联系您的系统管理员。", - "user.settings.advance.deactivateDescShort": "点击“编辑”以注销您的账号", + "user.settings.advance.deactivateDescShort": "点击“编辑”以停用您的账号", "user.settings.advance.deactivate_member_modal.deactivateButton": "是的,停用我的账号", - "user.settings.advance.formattingDesc": "如果开启,消息将创建链接、显示表情符以及添加换行。默认情况下,此设定是开启的。", + "user.settings.advance.formattingDesc": "如果开启,消息将创建链接、显示表情符以及添加换行。默认情况下,此设置是开启的。", "user.settings.advance.formattingTitle": "启用消息格式化", "user.settings.advance.icon": "高级设置图标", "user.settings.advance.joinLeaveDesc": "当“开启”时,用户加入或退出频道将会显示系统消息。当“关闭”时,用户加入或退出频道将不会显示系统消息。不过您加入到一个频道时仍然会显示系统消息而收到通知。", @@ -6694,7 +6694,7 @@ "user.settings.display.lastActiveDisplay": "分享上次活跃时间", "user.settings.display.lastActiveOff": "关闭", "user.settings.display.lastActiveOn": "开启", - "user.settings.display.linkPreviewDesc": "当可用时,在消息下方显示第消息里第一个网址的网站内容预览。", + "user.settings.display.linkPreviewDesc": "当可用时,在消息下方显示消息中第一个 URL 的网站内容预览。", "user.settings.display.linkPreviewDisplay": "网站链接预览", "user.settings.display.linkPreviewOff": "关闭", "user.settings.display.linkPreviewOn": "开启", @@ -6704,14 +6704,14 @@ "user.settings.display.messageDisplayCompactDes": "显示尽可能多的消息。", "user.settings.display.messageDisplayDescription": "选择频道中的消息应该如何显示。", "user.settings.display.messageDisplayTitle": "消息显示", - "user.settings.display.militaryClock": "24小时格式(例如:16:00)", - "user.settings.display.normalClock": "12小时格式(例如:4:00 PM)", - "user.settings.display.oneClickReactionsOnPostsDescription": "当启用时,将鼠标悬浮于消息上可以快捷添加最近使用过的反应。", - "user.settings.display.oneClickReactionsOnPostsTitle": "快捷添加反应", + "user.settings.display.militaryClock": "24 小时格式(例如:16:00)", + "user.settings.display.normalClock": "12 小时格式(例如:4:00 PM)", + "user.settings.display.oneClickReactionsOnPostsDescription": "当启用时,将鼠标悬浮于消息上可以快捷添加最近使用过的表情回应。", + "user.settings.display.oneClickReactionsOnPostsTitle": "快捷添加表情回应", "user.settings.display.preferTime": "选择您喜欢的时间显示格式。", "user.settings.display.renderEmoticonsAsEmojiDesc": "启用后,消息中的文本表情符号将自动渲染为表情符号(例如 :D 渲染为 😄)", "user.settings.display.renderEmoticonsAsEmojiTitle": "将表情符号渲染为表情", - "user.settings.display.teammateNameDisplay": "此烂由系统管理员管理。如果您想更改,您需要联系您的系统管理员。", + "user.settings.display.teammateNameDisplay": "此项由系统管理员管理。如需更改,请联系系统管理员。", "user.settings.display.teammateNameDisplayDescription": "设置在消息和私信列表中如何显示其他用户的名字。", "user.settings.display.teammateNameDisplayFullname": "显示姓名", "user.settings.display.teammateNameDisplayNicknameFullname": "若存在昵称显示昵称,否则显示姓名", @@ -6725,7 +6725,7 @@ "user.settings.display.theme.title": "主题", "user.settings.display.timezone": "时区", "user.settings.display.title": "显示设置", - "user.settings.general.attributeExtra": "这将显示在你的个人资料弹出框中。", + "user.settings.general.attributeExtra": "这将显示在您的个人资料弹出框中。", "user.settings.general.close": "关闭", "user.settings.general.confirmEmail": "确认邮箱", "user.settings.general.currentEmail": "当前邮箱地址", @@ -6752,7 +6752,7 @@ "user.settings.general.fullName": "全名", "user.settings.general.imageTooLarge": "无法上传头像。文件太大。", "user.settings.general.imageUpdated": "图片上次更新日期 {date}", - "user.settings.general.incorrectPassword": "您的密码是错误的。", + "user.settings.general.incorrectPassword": "您的密码不正确。", "user.settings.general.lastName": "姓氏", "user.settings.general.loginGitlab": "通过 GitLab ({email}) 登录", "user.settings.general.loginGoogle": "通过 Google ({email}) 登录", @@ -6812,7 +6812,7 @@ "user.settings.notifications.autoResponderDefault": "您好,我现在已离开办公室并无法回复消息。", "user.settings.notifications.autoResponderDisabled": "已禁用", "user.settings.notifications.autoResponderEnabled": "已启用", - "user.settings.notifications.autoResponderHint": "设定在私信里自动回复的消息。在公共或私有频道下的提及不会触发自动回复。开启自动回复将设您的状态为离开办公室并停用邮件和推送通知。", + "user.settings.notifications.autoResponderHint": "设置要在私信中自动回复的消息。公共或私有频道中的提及不会触发自动回复。开启自动回复会将您的状态设为外出办公,并停用邮件和推送通知。", "user.settings.notifications.autoResponderPlaceholder": "消息", "user.settings.notifications.channelWide": "频道范围提及“@channel”,“@all”,“@here”", "user.settings.notifications.comments": "回复通知", @@ -6892,8 +6892,8 @@ "user.settings.notifications.email.off": "关闭", "user.settings.notifications.email.on": "开启", "user.settings.notifications.email.send": "发送邮件通知", - "user.settings.notifications.emailBatchingInfo": "当您离线或离开超过 5 分钟时,系统会发送提及和私信的电子邮件通知。如果您选择每 15 分钟或每小时接收通知,该时间段内的通知将会合并到同一封邮件中。", - "user.settings.notifications.emailInfo": "启用后,当您离线或离开超过 5 分钟时,系统会发送提及和私信的电子邮件通知。", + "user.settings.notifications.emailBatchingInfo": "当您离线或离开超过 5 分钟时,系统会发送提及和私信的邮件通知。如果您选择每 15 分钟或每小时接收通知,该时间段内的通知将会合并到同一封邮件中。", + "user.settings.notifications.emailInfo": "启用后,当您离线或离开超过 5 分钟时,系统会发送提及和私信的邮件通知。", "user.settings.notifications.emailNotifications": "邮件通知", "user.settings.notifications.header": "通知", "user.settings.notifications.icon": "通知设置图标", @@ -6918,7 +6918,7 @@ "user.settings.notifications.sensitiveUsername": "不区分大小写的用户名“{username}”", "user.settings.notifications.title": "通知设置", "user.settings.plugins.title": "{pluginName} 设置", - "user.settings.profile.icon": "个人资料设定图标", + "user.settings.profile.icon": "个人资料设置图标", "user.settings.security.active": "已激活", "user.settings.security.close": "关闭", "user.settings.security.currentPassword": "当前密码", @@ -6936,19 +6936,19 @@ "user.settings.security.loginGitlab": "通过 GitLab 登录", "user.settings.security.loginGoogle": "通过 Google Apps 登录", "user.settings.security.loginLdap": "通过 AD/LDAP 登录", - "user.settings.security.loginMagicLink": "通过魔法链接完成登录", + "user.settings.security.loginMagicLink": "通过登录链接完成登录", "user.settings.security.loginOffice365": "通过 Entra ID 登录", "user.settings.security.loginSaml": "通过 SAML 登录", - "user.settings.security.logoutActiveSessions": "查看并注销活跃的会话", + "user.settings.security.logoutActiveSessions": "查看并退出活跃会话", "user.settings.security.logoutActiveSessions.icon": "活动会话图标", - "user.settings.security.magicLink": "魔法链接", - "user.settings.security.magicLinkInfo": "此账户仅支持魔法链接登录。", + "user.settings.security.magicLink": "登录链接", + "user.settings.security.magicLinkInfo": "此账号仅支持登录链接登录。", "user.settings.security.method": "登录方式", "user.settings.security.newPassword": "新密码", "user.settings.security.noApps": "没有任何授权的 OAuth 2.0 应用。", "user.settings.security.oauthApps": "OAuth 2.0 应用", "user.settings.security.oauthAppsDescription": "点击 '编辑' 来管理您的 OAuth 2.0 应用", - "user.settings.security.oauthAppsHelp": "应用以您的名义根据您设定的权限读取您的数据。", + "user.settings.security.oauthAppsHelp": "应用以您的名义根据您设置的权限读取您的数据。", "user.settings.security.office365": "Entra ID", "user.settings.security.oneSignin": "您只能同时用一种方式登录。切换登录方式后会发送一封邮件通知您更改是否成功。", "user.settings.security.openid": "OpenID", @@ -6972,14 +6972,14 @@ "user.settings.security.passwordGitlabCantUpdate": "通过 GitLab 登录。密码不能被更新。", "user.settings.security.passwordGoogleCantUpdate": "通过 Google Apps 登录。密码不能被更新。", "user.settings.security.passwordLdapCantUpdate": "通过 AD/LDAP 登录。密码不能被更新。", - "user.settings.security.passwordMagicLinkCantUpdate": "登录通过魔法链接进行,无法更新密码。", + "user.settings.security.passwordMagicLinkCantUpdate": "登录通过登录链接进行,无法更新密码。", "user.settings.security.passwordMatchError": "您输入的新密码不一致。", "user.settings.security.passwordMinLength": "无效最小长度,无法显示预览。", "user.settings.security.passwordOffice365CantUpdate": "通过 Entra ID 登录。密码不能被更新。", "user.settings.security.passwordSamlCantUpdate": "此字段由您的登录提供者决定。如果您想更改,您需要通过您的登录提供者进行操作。", "user.settings.security.retypePassword": "再次输入新密码", "user.settings.security.saml": "SAML", - "user.settings.security.ssoUsernameSyncNote": "注意:使用 Google SSO 时,你的 Google 用户名或电子邮件的更改不会自动同步到 Mattermost。要更新用户名,请临时切换为邮箱/密码登录,更新用户名,然后再切换回 Google SSO。", + "user.settings.security.ssoUsernameSyncNote": "注意:使用 Google SSO 时,您的 Google 用户名或邮件的更改不会自动同步到 Mattermost。要更新用户名,请临时切换为邮箱/密码登录,更新用户名,然后再切换回 Google SSO。", "user.settings.security.switchEmail": "切换到使用邮箱和密码登录", "user.settings.security.switchGitlab": "切换到使用 GitLab 单点登录", "user.settings.security.switchGoogle": "切换到使用 Google 单点登录", @@ -7020,12 +7020,12 @@ "user.settings.tokens.deactivate": "停用", "user.settings.tokens.deactivatedWarning": "(已停用)", "user.settings.tokens.delete": "删除", - "user.settings.tokens.description": "个人访问令牌功能与会话令牌类似并可以被整合与 REST API 验证。", - "user.settings.tokens.description_mobile": "个人访问令牌功能与会话令牌类似并可以被整合与 REST API 验证。在您的桌面创建新令牌。", + "user.settings.tokens.description": "个人访问令牌功能与会话令牌类似并可以被集成与 REST API 验证。", + "user.settings.tokens.description_mobile": "个人访问令牌功能与会话令牌类似并可以被集成与 REST API 验证。在您的桌面创建新令牌。", "user.settings.tokens.id": "令牌 ID: ", "user.settings.tokens.name": "令牌描述: ", "user.settings.tokens.nameHelp": "输入您的令牌描述以便记住它的作用。", - "user.settings.tokens.nameRequired": "请输入个描述。", + "user.settings.tokens.nameRequired": "请输入描述。", "user.settings.tokens.save": "保存", "user.settings.tokens.title": "个人访问令牌", "user.settings.tokens.token": "访问令牌: ", @@ -7048,13 +7048,13 @@ "userAccountMenu.dndSubMenuItem.doNotClear": "不清除", "userAccountMenu.dndSubMenuItem.tomorrow": "明天", "userAccountMenu.dndSubMenuItem.tomorrowsDateTime": "{shortDay}, {shortTime}", - "userAccountMenu.logoutMenuItem.label": "注销", + "userAccountMenu.logoutMenuItem.label": "退出登录", "userAccountMenu.menuButton.ariaDescription.away": "状态为\"离开\"。", "userAccountMenu.menuButton.ariaDescription.dnd": "状态为\"请勿打扰\"。", "userAccountMenu.menuButton.ariaDescription.offline": "状态为\"离线\"。", "userAccountMenu.menuButton.ariaDescription.online": "状态为\"在线\"。", "userAccountMenu.menuButton.ariaDescription.ooo": "状态为\"外出办公\"。", - "userAccountMenu.menuButton.ariaLabel": "用户帐号菜单", + "userAccountMenu.menuButton.ariaLabel": "用户账号菜单", "userAccountMenu.offlineMenuItem.label": "离线", "userAccountMenu.onlineMenuItem.label": "在线", "userAccountMenu.oooMenuItem.primaryLabel": "外出办公", @@ -7121,13 +7121,13 @@ "user_profile.account.hoursBehind": "(落后 {timeOffset})", "user_profile.account.localTime": "本地时间", "user_profile.account.localTimeWithTimezone": "本地时间({timezone})", - "user_profile.account.post_was_created": "这消息是由@{username}的集成创建的", + "user_profile.account.post_was_created": "此消息由 @{username} 的集成创建", "user_profile.add_user_to_channel": "添加到频道", "user_profile.call.ongoing": "与{user}的通话正在进行中", "user_profile.call.start": "开始通话", "user_profile.close": "关闭个人资料弹出窗口", "user_profile.custom_status": "状态", - "user_profile.custom_status.set_status": "设定状态", + "user_profile.custom_status.set_status": "设置状态", "user_profile.roleTitle.channel_admin": "频道管理员", "user_profile.roleTitle.system_admin": "系统管理员", "user_profile.roleTitle.team_admin": "团队管理员", @@ -7137,7 +7137,7 @@ "user_profile.send.dm.no_connection": "无法向来自非直接连接的服务器的用户发送消息", "user_profile.send.dm.no_connection.aria_label": "无法向{user}发送消息。他们的服务器未直接连接。", "user_profile.send.dm.yourself": "向自己发送一条消息", - "user_settings.notifications.test_notification.body": "无法收到通知?先向您的所有设备发送一条测试通知,以检查是否符合预期。如果仍有问题,通过故障排除步骤寻找解决的方法。", + "user_settings.notifications.test_notification.body": "无法收到通知?请先向您的所有设备发送一条测试通知,以检查是否符合预期。如果仍有问题,请按故障排除步骤查找解决方法。", "user_settings.notifications.test_notification.go_to_docs": "故障排除文档", "user_settings.notifications.test_notification.send_button.error": "发送测试通知时出错", "user_settings.notifications.test_notification.send_button.send": "发送测试通知", @@ -7165,7 +7165,7 @@ "web.footer.privacy": "隐私政策", "web.footer.terms": "条款", "web.header.back": "返回", - "web.header.logout": "注销", + "web.header.logout": "退出登录", "web.root.signup_info": "所有团队的通讯一站式解决,随时随地可访问和搜索", "webapp.mattermost.feature.all_enterprise": "所有企业功能", "webapp.mattermost.feature.all_professional": "所有专业功能", From e898ccdf3d7ba09cf41785ee26b32d1b395c6998 Mon Sep 17 00:00:00 2001 From: Harrison Healey Date: Wed, 6 May 2026 13:15:40 -0400 Subject: [PATCH 3/6] MM-68397 Add shared package to STYLE_GUIDE.md (#36425) * MM-68397 Add shared package to STYLE_GUIDE.md and CLAUDE.OPTIONAL.md * Add webapp/AGENTS.md --- webapp/AGENTS.md | 22 +++++++++++++++++++ webapp/CLAUDE.OPTIONAL.md | 8 +++++-- webapp/STYLE_GUIDE.md | 5 ++++- .../src/components/CLAUDE.OPTIONAL.md | 2 +- webapp/platform/CLAUDE.OPTIONAL.md | 1 + 5 files changed, 34 insertions(+), 4 deletions(-) create mode 100644 webapp/AGENTS.md diff --git a/webapp/AGENTS.md b/webapp/AGENTS.md new file mode 100644 index 000000000000..f01d637636fe --- /dev/null +++ b/webapp/AGENTS.md @@ -0,0 +1,22 @@ +# AGENTS.md + +Guidance for coding agents working inside `webapp/`. + +## Coding Standards + +Follow `webapp/STYLE_GUIDE.md` for canonical style, accessibility, and testing standards. + +## Shared Components + +Prefer the shared components from `@mattermost/shared` over hand-rolled equivalents: + +- **`Button`** — use for text-based button UI instead of building bespoke ` + , + ); + } + + rows.push( + + {row} + , + ); + } + } + } + + return ( + + + + + ))} + + + + {rows} + +
+ {emphasisLevels.map((emphasis) => ( + + {emphasis} +
+ ); +} diff --git a/webapp/channels/src/components/component_library/component_library.scss b/webapp/channels/src/components/component_library/component_library.scss index d15f20b3bb02..5271ee1a40b6 100644 --- a/webapp/channels/src/components/component_library/component_library.scss +++ b/webapp/channels/src/components/component_library/component_library.scss @@ -6,6 +6,7 @@ .clWrapper { width: auto; padding: 25px; + margin-bottom: 20px; } .clCenterBackground { @@ -15,3 +16,26 @@ .clSidebarBackground { background-color: var(--sidebar-bg); } + +.clTable { + width: 100%; + max-width: 970px; + background-color: var(--center-channel-bg); + + th { + text-transform: capitalize; + } + + tr { + background-color: var(--center-channel-bg); + } + + th, td { + padding: 12px 10px; + text-align: center; + + &.inverted { + background-color: var(--sidebar-bg); + } + } +} diff --git a/webapp/channels/src/components/component_library/index.tsx b/webapp/channels/src/components/component_library/index.tsx index c5376b22f30f..d523a64f4d41 100644 --- a/webapp/channels/src/components/component_library/index.tsx +++ b/webapp/channels/src/components/component_library/index.tsx @@ -8,11 +8,13 @@ import {Preferences} from 'mattermost-redux/constants'; import {applyTheme} from 'utils/utils'; +import ButtonComponentLibrary from './button.cl'; import SectionNoticeComponentLibrary from './section_notice.cl'; import './component_library.scss'; const componentMap = { + Button: ButtonComponentLibrary, 'Section Notice': SectionNoticeComponentLibrary, }; diff --git a/webapp/channels/src/components/component_library/utils.tsx b/webapp/channels/src/components/component_library/utils.tsx index 73783e34e8c6..85aed41315fc 100644 --- a/webapp/channels/src/components/component_library/utils.tsx +++ b/webapp/channels/src/components/component_library/utils.tsx @@ -29,13 +29,17 @@ function buildPropString(inputProps: {[x: string]: any}) { return undefined; } - const result = [(<>{'PROPS: '})]; + const result = [({'PROPS: '})]; propKeys.forEach((v) => { - result.push((<>{v}{`: ${inputProps[v]}, `})); + result.push(({v}{`: ${inputProps[v]}, `})); }); return result; } +function buildPropValueKey(inputProps: {[x: string]: any}) { + return Object.entries(inputProps).map(([key, value]) => `${key}:${value}`).join('-'); +} + export function buildComponent( Component: React.ComponentType, propPossibilities: {[x: string]: any[]}, @@ -66,13 +70,13 @@ export function buildComponent( propsVariations.forEach((v) => { const propString = buildPropString(v); res.push( - <> + {Boolean(propString) &&

{propString}

} - , +
, ); }); return res; diff --git a/webapp/channels/src/sass/components/_buttons.scss b/webapp/channels/src/sass/components/_buttons.scss index 29bda6a97812..1ef91fea675d 100644 --- a/webapp/channels/src/sass/components/_buttons.scss +++ b/webapp/channels/src/sass/components/_buttons.scss @@ -5,7 +5,7 @@ border: none; background: transparent; - &:focus { + &:focus, &.btn-force-focus { outline: 0; text-decoration: none; } @@ -16,7 +16,7 @@ } &:hover, - &:active { + &:active, &.btn-force-active { text-decoration: none; } } @@ -62,12 +62,12 @@ button { background-color: transparent; color: rgba(var(--center-channel-color-rgb), var(--icon-opacity)); - &:hover { + &:hover, &.btn-force-hover { background-color: rgba(var(--center-channel-color-rgb), 0.08); color: rgba(var(--center-channel-color-rgb), var(--icon-opacity-hover)); } - &:active { + &:active, &.btn-force-active { background-color: rgba(var(--button-bg-rgb), 0.08); color: rgba(var(--button-bg-rgb), 1); } @@ -135,7 +135,7 @@ button { box-shadow: none; } - &:active { + &:active, &.btn-force-active { box-shadow: none; } @@ -203,9 +203,9 @@ button { background: transparent; color: rgba(var(--button-bg-rgb), 1); - &:hover, - &:focus, - &:active { + &:hover, &.btn-force-hover, + &:focus, &.btn-force-focus, + &:active, &.btn-force-active { text-decoration: underline; } } @@ -217,16 +217,16 @@ button { color: rgb(var(--button-color-rgb)) !important; // These hover and active values are for things outside the app__body, the correct theme styles for the primary button are applied in utils.jsx - &:hover { + &:hover, &.btn-force-hover { background-color: #1a51c8; } - &:active, - &:focus { + &:active, &.btn-force-active, + &:focus, &.btn-force-focus { background-color: #184ab6; } - &:disabled, + &:disabled, &.btn-force-disabled, &:disabled:hover, &:disabled:active { background: rgba(var(--center-channel-color-rgb), 0.08); @@ -238,11 +238,11 @@ button { background-color: var(--online-indicator); color: var(--button-color-rgb); - &:hover { + &:hover, &.btn-force-hover { background-color: var(--online-indicator); } - &:active { + &:active, &.btn-force-active { background-color: var(--online-indicator); } } @@ -258,21 +258,21 @@ button { background: transparent; color: var(--error-text); - &:hover { + &:hover, &.btn-force-hover { border-color: currentColor; background-color: rgba(var(--error-text-color-rgb), 0.08); color: var(--error-text); } - &:active, - &:focus { + &:active, &.btn-force-active, + &:focus, &.btn-force-focus { border-color: currentColor; background-color: rgba(var(--error-text-color-rgb), 0.16); color: var(--error-text); } } - &:disabled, + &:disabled, &.btn-force-disabled, &:disabled:hover, &:disabled:active { border-color: rgba(var(--center-channel-color-rgb), 0.32); @@ -280,11 +280,11 @@ button { color: rgba(var(--center-channel-color-rgb), 0.32) !important; } - &:hover { + &:hover, &.btn-force-hover { background-color: rgb(var(--button-bg-rgb), 0.08); } - &:active { + &:active, &.btn-force-active { background-color: rgb(var(--button-bg-rgb), 0.16); } } @@ -293,16 +293,16 @@ button { background: rgba(var(--button-bg-rgb), 0.08); color: rgb(var(--button-bg-rgb)); - &:hover { + &:hover, &.btn-force-hover { background-color: rgb(var(--button-bg-rgb), 0.12); } - &:active { + &:active, &.btn-force-active { background-color: rgb(var(--button-bg-rgb), 0.16); outline: none; } - &:disabled, + &:disabled, &.btn-force-disabled, &:disabled:hover, &:disabled:active { background: rgba(var(--center-channel-color-rgb), 0.08); @@ -314,13 +314,13 @@ button { background-color: rgba(var(--error-text-color-rgb), 0.08); color: var(--error-text); - &:hover { + &:hover, &.btn-force-hover { background-color: rgba(var(--error-text-color-rgb), 0.12); color: var(--error-text); } - &:active, - &:focus { + &:active, &.btn-force-active, + &:focus, &.btn-force-focus { background-color: rgba(var(--error-text-color-rgb), 0.16); color: var(--error-text); } @@ -330,11 +330,11 @@ button { background-color: rgba(var(--sidebar-text-rgb), 0.12); color: rgba(var(--sidebar-text-rgb), 1); - &:hover { + &:hover, &.btn-force-hover { background-color: rgb(var(--sidebar-text-rgb), 0.16); } - &:active, + &:active, &.btn-force-active, &[aria-expanded="true"][aria-haspopup="true"] { background-color: rgb(var(--sidebar-text-rgb), 0.24); outline: none; @@ -345,22 +345,22 @@ button { background: transparent; color: rgb(var(--button-bg-rgb)); - &:hover { + &:hover, &.btn-force-hover { background: rgba(var(--button-bg-rgb), 0.08); } - &:active { + &:active, &.btn-force-active { background-color: rgb(var(--button-bg-rgb), 0.12); } &.btn-inverted { color: rgb(var(--button-color-rgb)); - &:hover { + &:hover, &.btn-force-hover { background: rgba(var(--button-color-rgb), 0.12); } - &:active, + &:active, &.btn-force-active, &[aria-expanded="true"][aria-haspopup="true"] { background-color: rgb(var(--button-color-rgb), 0.16); } @@ -374,16 +374,16 @@ button { .app__body & { color: variables.$white; - &:hover, - &:focus, - &:active { + &:hover, &.btn-force-hover, + &:focus, &.btn-force-focus, + &:active, &.btn-force-active { color: variables.$white; } } - &:hover, - &:focus, - &:active { + &:hover, &.btn-force-hover, + &:focus, &.btn-force-focus, + &:active, &.btn-force-active { color: variables.$white; } }